pressly goose 11548 Go https://avatars.githubusercontent.com/u/18835?v=4 60 Go 语言的数据库迁移工具,支持 SQL 与 Go 函数编写迁移,兼容主流数据库。 A database migration tool. Supports SQL migrations and Go functions.
创建于 10 年前
最后更新 3 周前
+7 stars today
AI 综合评分
60 B 级
代码质量 55
文档质量 62
社区健康 58
项目活跃 65
创新性 53
项目简介
Go 语言的数据库迁移工具,支持 SQL 与 Go 函数编写迁移,兼容主流数据库。
项目摘要
1. 【主题】
Go 生态中优雅且强大的数据库迁移工具,解决团队协作中数据库版本混乱与变更难以追踪的痛点。
2. 【核心分点总结】
双模迁移:既支持纯 SQL 脚本,也支持 Go 函数编写迁移逻辑,兼顾简单表结构变更与复杂数据填充需求。
多库兼容:原生支持 PostgreSQL, MySQL, SQLite, ClickHouse 等主流数据库,一套工具搞定异构环境。
灵活集成:既可作为独立命令行工具使用,也能作为 Go 包嵌入业务代码,实现程序化迁移控制。
零依赖:纯 Go 编写,编译为单二进制文件,部署无需额外运行时环境,轻量且稳定。
3. 【行动指南】
当你需要在团队协作中严格管控数据库 Schema 变更时,使用 goose 的 SQL 模式管理版本,确保开发、测试、生产环境一致。
当迁移涉及复杂的数据清洗或业务逻辑转换时,放弃纯 SQL,改用 Go 函数模式编写迁移,享受代码的灵活与类型安全。
将 goose 命令行工具集成到 CI/CD 流程中,在应用部署前自动执行迁移,实现数据库变更的自动化与零停机发布。
4. 【金句总述】
让数据库的版本演进,像代码提交一样清晰可控。
5. 【故事性收尾】
曾经,你盯着生产环境的报错日志,满头大汗地手动敲着 ALTER TABLE;如今,你只需轻轻敲击 goose up,端起咖啡,看着数据库在版本号的有序跳动中平稳升级,一切尽在掌握。