All Articles

SQLSTATE[HY000]: General errorでハマった

ハマったこと

マイグレーションファイルを作成中のこと。外部制約キーを記述し、いざ$ php artisan migrateをすると、SQLSTATE[HY000]: General errorのエラーが。 参照元のテーブルや型の部分で間違いがあるのかと思い何度も確認したが間違いはなさそう。

原因

結論から述べると、マイグレーションファイルの順番(作成の順番)がまずかったようです。 最初のマイグレーションファイルがこれ↓

スクリーンショット 2020-02-28 17.12.51.png

issuesからcategoriesを参照したかったのにこの順番になっていたので、マイグレーションの際にエラーが出ていたようです。

コマンドから生成されるマイグレーションファイルはYYYY_MM_DD_hhmiss_create_テーブル名s_table.phpのような名前になっているので頭の日付の部分をいじって順番を変えて上げると解決します。こんな感じ↓

スクリーンショット 2020-02-28 17.12.28.png

前述したように、issuesからcategoriesを参照したいので、先にcategoriesをもってきます。 そうして$ php artisan migrate:refreshをするとうまくいきました。

というか、コマンドでマイグレーションファイルを作れば良いのにここのときだけなぜか手動で作っていたのでこんなことになりました。

まとめ

とても初歩的なところだと思いますが、Laravel初心者の僕は引っかかってしまったので参考までに。 アドバイス・ご指摘など有りましたらよろしくおねがいします!