環境
- MacOS
- MySQL 8.0
- prisma 4.6.1
概要
- 照合順序を変更するマイグレーションを一部テーブルに適用したところ、エラーが発生した。
Database error code: 3780
Database error:
Referencing column 'xxxx' and referenced column 'yyyy' in foreign key constraint 'zzzz' are imcompatible.
※カラム名はぼかしています。
原因
- 外部キーと紐づくテーブルの照合順序を変更していないため。
外部キー定義は、次の条件に従います。
(...中略)
外部キー内の対応するカラムと、参照されるキーは同様のデータ型を持っている必要があります。 整数型のサイズと符号が同じである必要があります。文字列型の長さが同じである必要はありません。バイナリ以外の (文字の) 文字列カラムの場合、 文字セットと照合順序が同じである必要があります。
解決方法
- 外部キーと紐づくテーブルに対して照合順序変更する
- 以下の順でマイグレーションファイルを編集
- 外部キーを取り除く->照合順序変更->取り除いた外部キーを再度付与
上記を実施することでマイグレーションが完了した。
参考
以上