Create database migration について
Create database migration は、Ghost リポジトリでのデータベース移行に使う実行可能なチェックリストです。標準ガイドと併せて、生成、スキーマ更新、ロールバックと再適用のテスト、関連確認を扱います。
主な機能
- 01移行ファイル生成の手順
- 02スキーマ同期の手順
- 03ロールバックと再適用のテスト
- 04エクスポーターのテーブル一覧更新
- 05移行テストの指針
活用シーン
- 01Ghost でのデータベース移行の追加
- 02移行に伴うスキーマ定義の更新
- 03ロールバックと移行動作の検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tryghost/ ghost --skill create-database-migrationインストール後、Claude Code で/create-database-migrationを入力して読み込まれたか確認します。
同梱ファイルexamples.mdrules.md
詳細
データベースマイグレーションの作成
マイグレーションを作成する前に、
docs/practices/database-migrations.md
に記載されている正式な手順を確認してください。このスキルは、手順に付随する実行可能なチェックリストです。
手順
新しいテーブルを追加する場合で、まだ構造が変更される可能性があるなら、マイグレーションを作成せずに開発中としてマークすることを検討してください。ガイドの「開発中の新しいテーブル」を参照してください。
- リポジトリのルートから
pnpm gx generate migration <kebab-case-slug>を実行して、新しい空のマイグレーションファイルを作成します。重要:マイグレーションファイルを手動で作成しないでください。必ずこのスクリプトを使って、最初の空のマイグレーションファイルを作成してください。スラッグは kebab-case にしてください(例:add-column-to-posts)。 - 上記のコマンドによって、必要に応じて
ghost/core/server/data/migrations/versionsに新しいディレクトリが作成され、適切な名前の空のマイグレーションファイルが作成されます。また、リリース後初のマイグレーションの場合は、core パッケージと admin パッケージのバージョンが RC に引き上げられます。 - コードベース内の既存パターンに従って、データベースに加える変更をマイグレーションファイルに記述します。適切な場合は、
ghost/core/server/data/migrations/utils/*のユーティリティ関数を優先して使用してください。 ghost/core/server/data/schema/schema.jsのスキーマ定義ファイルを更新し、マイグレーションの最新の変更内容と一致していることを確認します。- リポジトリのルートから手動でマイグレーションをテストします:
pnpm knex-migrator migrate --v {version directory} --force down()をテストするためにマイグレーションをロールバックします:pnpm knex-migrator rollback --v {previous version} --force。その後、再度マイグレーションを実行します。- 初期化、ロールバック、前進マイグレーション、冪等性を確認するマイグレーション統合テストを実行します:
cd ghost && pnpm test:single test/integration/migrations/migration.test.js。MySQL が必要です。MySQL はpnpm devで起動します。 - テーブルを追加または削除する場合は、必要に応じて
ghost/core/server/data/exporter/table-lists.jsを更新します。ghost/test/unit/server/data/exporter/index.test.jsの整合性アサーションで、すべてのスキーマテーブルがエクスポーターのリストに分類されていることを確認します。 - テーブルリストを変更した場合は、対象を絞ったエクスポーターのユニットテストを実行します:
cd ghost && pnpm test:single test/unit/server/data/exporter/index.test.js。 - スキーマを変更した場合は、スキーマ同期テストを実行します:
cd ghost && pnpm test:single test/integration/migrations/schema-sync.test.ts。フィクスチャ、デフォルト設定、またはデフォルトルートを変更した場合は、データベース整合性テストを実行し、影響を受けるハッシュのみを更新します:cd ghost && pnpm test:single test/unit/server/data/schema/integrity.test.ts - Ghost core のユニットテストを実行し、合格するまで修正を繰り返します:
cd ghost && pnpm test:unit
例
マイグレーションの例については、examples.md を参照してください。
ルール
データベースマイグレーションの作成時に必ず従うべきルールについては、rules.md を参照してください。
コメント
Markdown 対応