LoginSignup
3
1

More than 1 year has passed since last update.

[prisma] Database error code: 3780 外部キー制約エラーを解消した話

Posted at

環境

  • 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.

※カラム名はぼかしています。

原因

  • 外部キーと紐づくテーブルの照合順序を変更していないため。

外部キー定義は、次の条件に従います。
(...中略)
外部キー内の対応するカラムと、参照されるキーは同様のデータ型を持っている必要があります。 整数型のサイズと符号が同じである必要があります。文字列型の長さが同じである必要はありません。バイナリ以外の (文字の) 文字列カラムの場合、 文字セットと照合順序が同じである必要があります。

解決方法

  • 外部キーと紐づくテーブルに対して照合順序変更する
  • 以下の順でマイグレーションファイルを編集
    • 外部キーを取り除く->照合順序変更->取り除いた外部キーを再度付与

上記を実施することでマイグレーションが完了した。

参考

以上

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1