Database Migrations

affaan-m/ECC/docs/ja-JP/skills/database-migrations

作者 affaan-mef648e01899ba3e8dc6371642deaaf64b4477775無授權條款275K 個星標收錄於 2026年10月9日更新於 2026年10月9日儲存庫4 天前更新

PostgreSQL、MySQL、一般的なORM(Prisma、Drizzle、Kysely、Django、TypeORM、golang-migrate)全体のスキーマ変更、データマイグレーション、ロールバック、ゼロダウンタイムデプロイメントのためのデータベースマイグレーションベストプラクティス。

AI 產生的概覽

針對 PostgreSQL、MySQL 及常見 ORM 的安全、可回復資料庫結構與資料遷移指南。

功能
此技能提供規劃與執行資料庫遷移的最佳實務說明,涵蓋結構變更、資料回填、回復與零停機部署。內容包含核心原則、遷移前安全檢查清單,以及安全新增欄位等 PostgreSQL 模式。產出的是指引與清單,而非可執行的遷移檔案。
適用情境
適用於建立或修改資料表、新增或移除欄位或索引、執行資料遷移、規劃零停機結構變更,或為新專案設定遷移工具時。
執行需求
不需要任何工具、套件或憑證;僅為說明文件,不附帶指令碼。

データベースマイグレーションパターン

本番環境システム用の安全で可逆的なデータベーススキーマ変更。

アクティベーション時期

  • データベーステーブルの作成または変更
  • 列またはインデックスの追加/削除
  • データマイグレーション(バックフィル、変換)の実行
  • ゼロダウンタイムスキーマ変更を計画
  • 新しいプロジェクト用のマイグレーションツール設定

コア原則

  1. すべての変更はマイグレーション — 本番環境データベースを手動で変更しない
  2. マイグレーションは本番環境で前方のみ — ロールバックは新しい前向きマイグレーション使用
  3. スキーマとデータマイグレーションは分離 — 1つのマイグレーションでDDLとDMLを混ぜない
  4. 本番環境サイズのデータに対してマイグレーションをテスト — 100行で機能するマイグレーション10M上でロックされる場合がある
  5. マイグレーションは展開後は不変 — 本番環境で実行されたマイグレーションを編集しない

マイグレーション安全チェックリスト

マイグレーションを適用する前に:

  • マイグレーションはUPとDOWNの両方を持つ(または明示的に不可逆としてマーク)
  • 大型テーブルの完全テーブルロックなし(並行操作使用)
  • 新しい列はデフォルトまたはnullable(デフォルトなしでNOT NULLを追加しない)
  • インデックスは並行して作成(既存テーブルのCREATE TABLEでインライン化しない)
  • データバックフィルはスキーマ変更から分離したマイグレーション
  • 本番環境データのコピーに対してテスト
  • ロールバック計画を文書化

PostgreSQL パターン

列を安全に追加

sql
-- GOOD: Nullable列、ロックなしALTER TABLE users ADD COLUMN avatar_url TEXT;
-- GOOD: デフォルト付きの列(Postgres 11+は即座、書き直しなし)ALTER TABLE users ADD COLUMN is_active BOOLEAN NOT NULL DEFAULT true;
-- BAD: 既存テーブルのデフォルトなしで NOT NULL(完全書き直し必須)ALTER TABLE users ADD COLUMN is_active BOOLEAN NOT NULL;

詳細についてはドキュメントを参照してください。

來源與署名

來源:affaan-m/ECC位於docs/ja-JP/skills/database-migrations提交ef648e0

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架