Laravel

【Laravel】migration実行(挫折しないLaravel ver.)

Macでの作業、という前提なのか?

テキストに記述された通りにやるだけだとエラーが発生したので、備忘録として残しておく。

●.envファイルの編集

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=quickstart (MySQLに作成済みのテーブル名)
DB_USERNAME=root (MySQLに存在するユーザー)
DB_PASSWORD=

・・・だけでは足りない。

!●config/database.phpの編集

‘mysql’ => [
‘driver’ => ‘mysql’,
‘host’ => env(‘DB_HOST’, ‘127.0.0.1’),
‘port’ => env(‘DB_PORT’, ‘3306’),
‘database’ => env(‘DB_DATABASE’, ‘quickstart’),
‘username’ => env(‘DB_USERNAME’, ‘root’),
‘password’ => env(‘DB_PASSWORD’, ”),
‘unix_socket’ => env(‘DB_SOCKET’, ”),
のちに
php artisan migrate
を実行する際、どうやらこのdatabase.phpの設定値も参照するらしく、.envファイルと同じ設定にしておく必要がある。
また、
‘charset’ => ‘utf8’,
‘collation’ => ‘utf8_unicode_ci’,
としておかないと、
Syntax error or access violation
Specified key was too long
というエラーが出る。
Laravelのバージョン違いによるエラーで、従来の記述のままだとうまくいかないらしい。
参考にさせていただいたHP:
https://akamist.com/blog/archives/982
更に更に、上記を直し終わって、満を持して
php artisan migrate
を実行したところ、
Base table or view already exits:’users’
なるエラーが発生した。
これは、先述のエラー対策の度にphp artisan migrateを実行していたので、本来作成すべき4つのテーブルのうち、usersだけ中途半端に作られてしまっていたため。
MySQLで、DROPコマンドを実行してusersテーブルを削除したうえで、改めて、
php artisan migrate
を実行すれば、正常にテーブルが作成されるはず。
本記事について何かありましたら、お問い合わせください。