Let's start from here

データベースのテーブル作成とmigrate

 
データベースにデータを格納するためにはテーブルの作成が必要です。データはテーブルの中に保存します。データの取り出す場合もテーブルを指定します。通常データベースのテーブルを作成する場合は、データベースに直接アクセスして作成しますがLaravelではテーブルの作成・管理機能を持っています。
この章では、Laravelでテーブルの作成方法と運用方法を説明します。

マイグレーションについて

マイグレーションはデータベースの管理機能です。データベーステーブルの作成や削除、設定の更新をスクリプトで実行します。
テーブルの設定をLaravelで保持することで環境の移行などに容易に対応可能です。
テーブルの設定ファイルを作成してコマンドを実行することでデータベースに反映されます。

マイグレーションファイルの生成

マイグレーションのスクリプトファイルをコマンドで作成します。
マイグレーションファイルの作成コマンドは、

今回は、menbersテーブルを作成します。

ファイル名はとりあえず「create_member_table」としておきます。
このコマンドを実行するとテーブル作成用のスクリプトファイルが作成されます。作成場所は、

/database/migrations

今回作成したファイル以外にも幾つかあります。
作成ファイルには、年月日時のあとに先に設定したファイル名となります。

Laravelでテーブルを作成する場合に、テーブル名は複数形で作成するのがベーターです(単数形でも問題ありませんが)。
この理由は、「modelとデータベーステーブルの紐付け」の所で説明します。

テーブル設定スクリプトの更新

スクリプトを開くと、up() と down() メソッドの部分が重要です。
up() のSchema::create とdown() の Schema::dropIfExists の第1引数に対象となるテーブル名が入ります。違っていれば修正しましょう。

up() のSchema::create の第2引数のクロージャーの処理部分にテーブルの各フィールドの設定を記述します。

$tabel->データ型(フィールド名);

として必要なフィールド数分の記載をします。
最初からある「2014_10_12_000000_create_users_table.php」を参考に設定しましょう。

更新コマンドの実行

スクリプトファイルが完成したら

もし、過去にこのコマンドを実行してテーブルが作成済みの場合は、エラーになります。
その場合は、「その他のmigrateコマンド」を参照して対応願います。
もしテーブルのレコードが未作成ならこれ(php artisan migrate:fresh)

テーブルの作成が成功したら正しくテーブルが作成されているかも確認しましょう。

その他のmigrateコマンド

マイグレーション実行

直前に実行したmigrate を取り消す

実行したmigrate を取り消す際のstepの実行回数分戻る

全部ロールバックしてからマイグレーションし直す(downメソッドを実行して戻すのでdownの記述に左右される)

php artisan migrate:fresh(全テーブルをドロップして作り直すのでdownメソッドの影響を受けない)
一旦全てのテーブルを削除してマイグレーションし直す