BlueAI株式会社BlueAI
コード生成中級

Drizzle/sqlc マイグレーションの自動生成

スキーマ変更の要件から Drizzle / Atlas / sqlc 用のマイグレーション SQL を生成するプロンプト。

平原尚樹
監修: 平原尚樹

株式会社BlueAI 代表取締役CEO / ソフトウェアエンジニア / プロダクトエンジニア / Google Cloud Architect / 元AIスタートアップ(Doorkel)

酒井歩乃加
監修: 酒井歩乃加

早稲田大学文化構想学部卒業 / フリーランス編集者・ライター / 元マイベスト編集ディレクター / SEO対策記事・取材記事執筆

こんな課題を解決

テーブル追加やカラム変更のたびに、命名規則と既存スキーマの整合性を確認するのが面倒。ロールバック手順まで含めて自動で作りたい。

プロンプト

Claude Code に入力

次のスキーマ変更に必要なマイグレーションを生成してください。

## 変更内容
- テーブル: invoices に payment_method (enum) と discount_amount (integer) を追加
- payment_method の値は bank_transfer / credit_card / convenience_store
- discount_amount は NOT NULL DEFAULT 0
- 既存行への影響を最小化(ALTER TABLE のロック時間も考慮)

## 出力してほしいもの
1. packages/db/src/schema.ts への TypeScript 定義追加
2. apps/api-go/migrations/{timestamp}_add_invoice_payment.sql (Atlas 形式)
3. ロールバック用の DOWN マイグレーション
4. sqlc が拾えるよう sql/queries/*.sql の更新案
5. 既存データへの backfill が必要なら別ファイルで提示

## 命名・規約
- スネークケース
- インデックスは org_id を必ず先頭に複合キーへ含める
- 既存の命名パターン(プロダクト prefix)に従う

実行結果の例

Claude Code が以下を生成します。 - packages/db/src/schema.ts に invoicePaymentMethodEnum 追加 - migrations/20260519120000_add_invoice_payment.sql(ALTER TABLE 4 行) - ロールバック SQL(カラム DROP) - sql/queries/invoices.sql に SetPaymentMethod クエリ追加

コツ・ポイント

  • 既存テーブルへの ALTER は本番行数を Claude に伝えると影響評価が正確になる
  • Atlas を使うなら migrate diff で再生成し直すのが安全
  • enum はアプリ側の型と zod スキーマも同時更新するよう指示する
  • backfill が必要な変更は別マイグレーションに分けるのが鉄則

Claude Code を体系的に学びませんか?

全10章・30レッスン無料公開中

第1章から始める