mcpField
G
go-goose

go-goose

github.com/metalagman数据与数据库2653 次安装10 周前更新
代码仓库

关于 go-goose

go-goose 为使用 pressly/goose 的 Go 开发者提供数据库迁移指导,涵盖命令行和 Go 库。它强调遵循项目约定、匹配驱动与方言,并安全管理迁移顺序和回滚。

主要功能

  1. 01CLI 与 Go 库迁移流程
  2. 02SQL 与 Go 迁移编写指引
  3. 03数据库驱动与方言匹配
  4. 04版本排序及回滚注意事项

适用场景

  1. 01创建数据库架构迁移
  2. 02在 Go 服务或测试中执行迁移
  3. 03为 CI/CD 运行迁移命令

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/metalagman/agent-skills --skill go-goose

安装后在 Claude Code 中输入/go-goose确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
cli.md
go-migrations.md
library.md
sql-annotations.md
versioning.md

详细介绍

go-goose

使用 pressly/goose 通过命令行或 Go 库创建和运行数据库迁移的专家指导。

何时触发

  • 用户提到 goose、pressly/goose、Go 中的数据库迁移,或询问如何运行 SQL/Go 迁移。
  • 任务涉及嵌入迁移、Provider API 用法或使用 goose 的 CI 工作流。

核心规则

  • 优先遵循仓库现有的迁移布局、方言和命名约定。
  • 确保数据库驱动与 goose 方言匹配(例如,postgres 驱动搭配 postgres 方言)。
  • 架构变更优先使用 SQL 迁移;复杂的数据回填或代码驱动的步骤使用 Go 迁移。
  • 在 goose 的规则范围内保持迁移的确定性和幂等性(一个 Up,可选的 Down)。

工作流

  1. 明确上下文:目标数据库/方言、驱动、迁移目录、SQL 还是 Go 迁移需求,以及所需命令(create/up/down/status 等)。
  2. 选择接口:
    • 命令行 用于临时运行或 CI/CD。
    • 库/Provider 当迁移在 Go 服务或测试内部执行时。
  3. 编写迁移:
  4. 运行迁移:
  5. 版本控制 + 排序:
    • 开发期间使用混合版本控制,如有需要,生产环境排序使用 fix(参见 references/versioning.md)。

输出预期

  • 提供与用户方言和环境匹配的准确命令或代码片段。
  • 当需要回滚时,警告缺少 Down 迁移。
  • 如果迁移需要特殊解析或非事务性执行,请明确指出。

参考

评论

支持 Markdown