#Laravelのマイグレーションで気が付いたこと
##前提
Laravel 5.5でcitysテーブルとCityモデルを作成しました。
英語が苦手なのがばれてしまうのですが、テーブルは複数形でcitiesでなければなりません。
エラーが発生!
tinkerで、
$ php artisan tinker
>>> use App\City
>>> City::all()
としたときに下記エラーが出ました。(恥)
「citiesテーブルがないみたいだけど???」
Illuminate/Database/QueryException with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'marutora.cities' doesn't exist (SQL: select * from `cities`)'
簡単で便利だったマイグレーション手順!
①モデルファイルとマイグレーションファイル一気に作成
$ php artisan make:model City -m
※マイグレーションファイル名ちゃんと複数形で作成されました。
②マイグレーションファイルの編集
③データベースをフレッシュし、全データベースのシードを実行
$ php artisan migrate:fresh --seed
※フレッシュとリフレッシュについて(テーブルのデータ消したくない人は要注意)
refresh:全マイグレーションロールバック→マイグレーション
fresh:全テーブルをドロップ→マイグレーション
④tinkerで確認
$ php artisan tinker
>>> use App\City
>>> City::all()
>>> Illuminate\Database\Eloquent\Collection {#略}
今までマイグレーションとモデルを単体で作成していたので、この方法は楽でした。