DB のカラムを破壊的に変更する手順
このドキュメントでは、ent を使用した Go プロジェクトにおいて、データマイグレーションを伴うような、データベースのカラムを破壊的に変更する手順について説明します。
該当する例
- 同一テーブルでのカラム名の変更
- テーブルのリレーションの張り替え
- 2つのカラムから1つのカラムへの統合
手順
安全に移行するために、大きく3つのステップに分けます。
1. 一つ目のPR
新カラムの定義を行い、mutation系を両方のカラムを更新するように修正します。
2. データマイグレーション
SQLを用いて、旧カラムの内容を新カラムにデータを移行します。これは本番環境で実行するので、1でPRを作成するときに実行するべきSQLを同時に記述してください。
3. 二つ目のPR
Query系を新カラムから取得するように修正し、旧カラムを削除します。
TIP
- 参照系: データを参照するような処理、GraphQL の Query等
- 更新系: データを更新するような処理、GraphQL の Mutation等