PHP
laravel

Laravelのマイグレーションで気が付いたこと

Laravelのマイグレーションで気が付いたこと

前提

Laravel 5.5でcitysテーブルとCityモデルを作成しました。
英語が苦手なのがばれてしまうのですが、テーブルは複数形でcitiesでなければなりません。

エラーが発生!

tinkerで、

$ php artisan thinker
>>> 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 {#略}

今までマイグレーションとモデルを単体で作成していたので、この方法は楽でした。