LoginSignup
5
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-08-10

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 {#略}

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

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2