Skip to content

DB のカラムを破壊的に変更する手順 ​

このドキュメントでは、ent を使用した Go プロジェクトにおいて、データマイグレーションを伴うような、データベースのカラムを破壊的に変更する手順について説明します。

該当する例 ​

  • 同一テーブルでのカラム名の変更
  • テーブルのリレーションの張り替え
  • 2つのカラムから1つのカラムへの統合

手順 ​

安全に移行するために、大きく3つのステップに分けます。

1. 一つ目のPR ​

新カラムの定義を行い、mutation系を両方のカラムを更新するように修正します。

2. データマイグレーション ​

SQLを用いて、旧カラムの内容を新カラムにデータを移行します。これは本番環境で実行するので、1でPRを作成するときに実行するべきSQLを同時に記述してください。

3. 二つ目のPR ​

Query系を新カラムから取得するように修正し、旧カラムを削除します。

TIP

  • 参照系: データを参照するような処理、GraphQL の Query等
  • 更新系: データを更新するような処理、GraphQL の Mutation等