mcpField
D
db-migration

db-migration

github.com/hiromaily数据与数据库12836 次安装27 周前更新
代码仓库

关于 db-migration

用于协调数据库结构与迁移变更的仓库 Skill,覆盖 PostgreSQL、MySQL 和 SQLite。它按步骤指导修改 HCL、重新生成产物并验证 Go 代码。

主要功能

  1. 01编辑 HCL 结构定义
  2. 02检查 HCL 格式与 lint
  3. 03重新生成迁移和 SQLC 产物
  4. 04验证 Go 构建与测试

适用场景

  1. 01更新数据库结构
  2. 02重新生成迁移和 SQLC 产物
  3. 03结构变更后检查 Go 代码

安装

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

$npx skills add https://github.com/hiromaily/go-crypto-wallet --skill db-migration

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

详细介绍

数据库迁移工作流

用于数据库架构和迁移变更的工作流。

前提条件

  • 使用 git-workflow Skill 处理分支、提交和 PR 工作流。
  • 参考 .claude/rules/hcl.md 了解 HCL 架构规则(SSOT)。
  • 参考 .claude/rules/sql.md 了解 SQL 查询规则(SSOT)。

适用文件

路径描述
tools/atlas/schemas/{db_dialect}/*.hclHCL 架构定义(事实来源)
tools/sqlc/queries/{db_dialect}/*.sqlSQLC 查询定义

工作流

1. 修改架构(HCL)

编辑 tools/atlas/schemas/{db_dialect}/ 中的 HCL 文件。

方言目录:

  • tools/atlas/schemas/postgres/*.hcl
  • tools/atlas/schemas/mysql/*.hcl
2. 验证 HCL(参考 rules/hcl.md)
make atlas-fmt && make atlas-lint
3. 重新生成所有构件

修改 HCL 架构后,运行全部三个目标:

# Regenerate migrations, extract SQLC schemas, and generate Go code for PostgreSQL
make regenerate-all-from-atlas

# Regenerate for MySQL
make regenerate-all-from-atlas-mysql

# Convert PostgreSQL schemas to SQLite and generate Go code for SQLite
make regenerate-all-from-atlas-sqlite

每个目标都会处理:Atlas 迁移 → Docker DB 重置 → SQLC 架构提取 → SQLC 代码生成。

4. 验证迁移文件

运行重新生成目标后,确认每种 DB 方言恰好有一个迁移 SQL 文件:

  • tools/atlas/migrations/postgres/{db-name}/*.sql ← 一个文件,已更新
  • tools/atlas/migrations/mysql/{db-name}/*.sql ← 一个文件,已更新

DB 名称:keygen、sign、watch

5. 验证 Go 代码
make check-build && make go-test

自检清单

  • HCL 格式检查/lint 通过
  • make regenerate-all-from-atlas 成功(postgres)
  • make regenerate-all-from-atlas-mysql 成功(mysql)
  • make regenerate-all-from-atlas-sqlite 成功(sqlite)
  • 每个 tools/atlas/migrations/{postgres,mysql}/{db-name}/ 中恰好有一个 .sql 文件,且已更新
  • SQLC 正确生成
  • Go 构建通过

相关内容

  • .claude/rules/hcl.md - HCL 规则(SSOT)
  • .claude/rules/sql.md - SQL 规则(SSOT)
  • go-development - SQLC 生成后的 Go 验证
  • git-workflow - 分支、提交和 PR 工作流

评论

支持 Markdown