マイグレーションでできること
テーブル定義を管理する仕組みのこと。
マイグレーションファイルを作成し、それを実行することでファイル内で定義した内容をもとにデータベーステーブルを作成する。
参照記事
https://www.hypertextcandy.com/how-laravel-migration-works
マイグレーションファイルの作成
php artisan make:migration create_{テーブル名}_table
database/migration
ディレクトリに年_月_日_時間_create_{テーブル名}_table.php
というファイルが作成される。
up
とdown
という2つのメソッドを持つクラスが存在する。
up
メソッドの中にどういうテーブルにするかの詳細を書いていく。
*カラム名・型など
公式ページ参照
https://readouble.com/laravel/5.5/ja/migrations.html
down
メソッドはロールバック(マイグレーションを元に戻す機能)の時に実行される。
マイグレーション実行
php artisan migrate
実行することによってデータベースに3つのテーブルが作成される。
①作成したファイルのテーブル
→ファイル内で定義したテーブルが作成される
②migrationsテーブル
→マイグレーションを実行する度に追加されたファイル名が保存されるテーブル
③password_resetテーブル
マイグレーションの変更
php artisan make:migration {マイグレーションファイル名} --table={テーブル名}
{マイグレーションファイル名}
の部分はそのままクラス名になるためわかりやすい名前にする
*カラム追加の場合
→add_cloumn_name_users_table
現在あるマイグレーションファイルを編集するのではなく新たに変更を加える内容を記載したファイルを作成し実行する。
例えばカラム名を変更する際はrenameColumn
メソッドを使用する。
おそらくそのまま使用しても使えないため変更追加用パッケージをインストールする必要がある。
composer require doctrine/dbal
これをインストールすればカラム名を変更することが可能となる。
ロールバック
php artisan migrate:rollback
down
メソッドを実行する
データベースのmigrations
テーブルのバッチ単位で処理される。
ロールバックを行うことによってバージョン管理のようにマイグレーション内容を元に戻すことができる。