コピーオンライトブランチで破壊的なPostgresマイグレーションをテストする
使うタイミング: マイグレーション(DROP COLUMN、大規模UPDATE、インデックス再構築)があり、本番を危険にさらさずに本番相当のデータで実行したい場合。
前提条件
- Neon APIキー — console.neon.tech → Account → API keys
フロー
-
mainからブランチを作成In Neon project <id>, create a branch named 'test-drop-legacy' from the main branch. Return the connection string for the new branch.✓ コピーしました→ 2秒以内にブランチが作成され、接続文字列が返される
-
ブランチにマイグレーションを適用Connect to the new branch and run: <paste migration SQL>. Report row counts and any errors.✓ コピーしました→ マイグレーションが完了し、行数が妥当である
-
検証してクリーンアップRun sanity queries on the changed tables. If results look correct, tell me and I'll apply to main. Then delete the branch either way.✓ コピーしました→ 検証完了 + ストレージ課金を避けるためブランチを削除
結果: 本番へのリスクゼロで、マイグレーションが本番データで正しく動作する確信が得られます。
注意点
- ブランチは書き込み量に比例してストレージを消費する — テスト後は速やかにブランチを削除してください。大量書き込みのある放置ブランチは請求額を押し上げます
- ブランチはスナップショットであり、ブランチ作成後にmainで行われた書き込みは反映されない — 適用直前にブランチを作成するか、Neonのタイムトラベル機能で特定のタイムスタンプからブランチを作成してください