database-migrations
PostgreSQL、MySQL、一般的なORM(Prisma、Drizzle、Kysely、Django、TypeORM、golang-migrate)全体のスキーマ変更、データマイグレーション、ロールバック、ゼロダウンタイムデプロイメントのためのデータベースマイグレーションベストプラクティス。
它会碰到什么
扫了多少1 个文本文件,1 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
データベースマイグレーションパターン
本番環境システム用の安全で可逆的なデータベーススキーマ変更。
アクティベーション時期
- データベーステーブルの作成または変更
- 列またはインデックスの追加/削除
- データマイグレーション(バックフィル、変換)の実行
- ゼロダウンタイムスキーマ変更を計画
- 新しいプロジェクト用のマイグレーションツール設定
コア原則
- すべての変更はマイグレーション — 本番環境データベースを手動で変更しない
- マイグレーションは本番環境で前方のみ — ロールバックは新しい前向きマイグレーション使用
- スキーマとデータマイグレーションは分離 — 1つのマイグレーションでDDLとDMLを混ぜない
- 本番環境サイズのデータに対してマイグレーションをテスト — 100行で機能するマイグレーション10M上でロックされる場合がある
- マイグレーションは展開後は不変 — 本番環境で実行されたマイグレーションを編集しない
マイグレーション安全チェックリスト
マイグレーションを適用する前に:
- [ ] マイグレーションはUPとDOWNの両方を持つ(または明示的に不可逆としてマーク)
- [ ] 大型テーブルの完全テーブルロックなし(並行操作使用)
- [ ] 新しい列はデフォルトまたはnullable(デフォルトなしでNOT NULLを追加しない)
- [ ] インデックスは並行して作成(既存テーブルのCREATE TABLEでインライン化しない)
- [ ] データバックフィルはスキーマ変更から分離したマイグレーション
- [ ] 本番環境データのコピーに対してテスト
- [ ] ロールバック計画を文書化
PostgreSQL パターン
列を安全に追加
-- 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;
詳細についてはドキュメントを参照してください。
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
同名技能的其他版本
有 6 个不同仓库或目录里都有叫 database-migrations 的技能。它们内容并不相同,别混用:
- affaan-m/ECC — >
- affaan-m/ECC — Buenas prácticas de migración de base de datos para cambios de esquema, migraciones de dat
- affaan-m/ECC — Şema değişiklikleri, veri migration'ları, rollback'ler ve PostgreSQL, MySQL ve yaygın ORM'
- affaan-m/ECC — 数据库迁移最佳实践,涵盖模式变更、数据迁移、回滚以及零停机部署,适用于PostgreSQL、MySQL及常用ORM(Prisma、Drizzle、Django、TypeORM、go
- affaan-m/ECC — Database migration best practices for schema changes, data migrations, rollbacks, and zero