😶

PrismaでMySQLにMigration時「Table 'XXX' doesn't exist」と言われてしまう

2022/08/24に公開

現象

PrismaでMigrationの実施時に「Table 'XXX' doesn't exist」とエラーが出てしまう現象
XXXは例えばUserテーブルであればuserの様に小文字になって出力されている

原因

Prismaの生成されるMigrationファイルを見るとCREATE TABLEではテーブル名は大文字になっているが、ALTER TABLEでは小文字になっている。MySQLではデフォルトで厳密にテーブル名の大文字小文字判定をしているので対象のテーブルを探す事が出来ずエラーとなる

CREATE TABLE `User` 
ALTER TABLE `user`

対策

MySQLでテーブル名の大文字と小文字を区別しない判定のオプションを設定する。

lower_case_table_names = 1

参考文献

https://dev.mysql.com/doc/refman/5.6/ja/identifier-case-sensitivity.html

Discussion