Laravel奮闘記 – マイグレーションに失敗する

早速、躓きました。

ログイン画面の作成をしてみようとした所、
データベースの準備で「マイグレーション」というのをやるらしい。

なるほど、
事前にマイグレーション用のファイルを用意しておくと、
それを元にテーブルを作成してくれるのか…

「.env」にDB情報を書き込んで、

DB_DATABASE=sample
DB_USERNAME=your_username
DB_PASSWORD=your_password

いざ、マイグレーション!

php artisan migrate

失敗しました…

Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

usersテーブルのemailをユニークにしようとしたらしい。
だけど、「ユニーク制約付きvarcharは767byteまでしかいけない」らしい。
UTF8は3byteなので765byteでセーフ。
だけど、今回作ろうとしているのはutf8mb4。
utf8mb4は4byteらしく、1,020byteでアウト!
インストール時に用意されてるサンプルがエラーって…

結局、emailの文字数を制限しました。
「255 -> 150」。
150なら600byteでセーフだよね。

フレームワークというものは、
初心者からベテランまで、
ある程度統一した構造でプログラミングができる事が魅力です。
また、セキュリティ対策を初めとした面倒な初期の手間を省けるのも助かります。
しかし、簡単に導入できなければ使う意味はあるのだろうか…?

まあ、クライアントから「使え」って言われればやるしかないんですが…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です