db-migration について
PostgreSQL、MySQL、SQLite のデータベーススキーマとマイグレーション変更を進めるためのリポジトリ向けスキルです。HCL の編集から生成物の再生成、Go の検証までを案内します。
主な機能
- 01HCL スキーマの編集
- 02HCL のフォーマットと lint チェック
- 03マイグレーションと SQLC の再生成
- 04Go のビルドとテスト検証
活用シーン
- 01データベーススキーマの更新
- 02マイグレーションと SQLC 生成物の再生成
- 03スキーマ変更後の Go コード確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ hiromaily/ go-crypto-wallet --skill db-migrationインストール後、Claude Code で/db-migrationを入力して読み込まれたか確認します。
詳細
データベースマイグレーションのワークフロー
データベーススキーマとマイグレーションの変更に関するワークフローです。
前提条件
- ブランチ、コミット、PR のワークフローには
git-workflowSkill を使用してください。 - HCL スキーマのルール(SSOT)については
.claude/rules/hcl.mdを参照してください。 - SQL クエリのルール(SSOT)については
.claude/rules/sql.mdを参照してください。
対象ファイル
| パス | 説明 |
|---|---|
tools/atlas/schemas/{db_dialect}/*.hcl | HCL スキーマ定義(信頼できる唯一の情報源) |
tools/sqlc/queries/{db_dialect}/*.sql | SQLC クエリ定義 |
ワークフロー
1. スキーマを変更する(HCL)
tools/atlas/schemas/{db_dialect}/ 内の HCL ファイルを編集します。
方言ごとのディレクトリ:
tools/atlas/schemas/postgres/*.hcltools/atlas/schemas/mysql/*.hcl
2. HCL を検証する(rules/hcl.md を参照)
make atlas-fmt && make atlas-lint
3. すべての成果物を再生成する
HCL スキーマを変更した後、3 つすべてのターゲットを実行します。
# 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 ファイルがちょうど 1 つあることを確認します。
tools/atlas/migrations/postgres/{db-name}/*.sql← ファイル 1 つ、更新済みtools/atlas/migrations/mysql/{db-name}/*.sql← ファイル 1 つ、更新済み
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ファイルがちょうど 1 つあり、更新されている - SQLC が正しくコードを生成する
- Go のビルドが通る
関連項目
.claude/rules/hcl.md- HCL のルール(SSOT).claude/rules/sql.md- SQL のルール(SSOT)go-development- SQLC 生成後の Go の検証git-workflow- ブランチ、コミット、PR のワークフロー
コメント
Markdown 対応