Laravelでマイグレーションをやってみたメモ
Laravelではマイグレーションファイルでデータベースを管理する。 マイグレーションとは、データベースのバージョン管理機能です。
マイグレーションファイルの作成
テーブルを作る為の、sql文のようなものでしょうか。
php artisan make:migration {マイグレーションファイル名}
以下を実行すると、/database/migrations
配下にマイグレーションファイルが作成されます。
php artisan make:migration create_users_table --create=users
///database/migrations/xxxx_create_users_table.phpが作成される(xxxxには日付が入ります)
生成されファイルは以下のようになっています。 これがマイグレーションの基本コードになります。 ここにカラムの定義をしていきます。
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreatePostsTable extends Migration
{
public function up()
{
//テーブルをを生成する為の処理を書いていきます
}
public function down()
{
//テーブルを削除する為の処理を書いていきます
}
}
テーブルの生成処理はこんな感じ。
public function up(){
Schema::create('users',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->string('mail');
$table->integer('age');
$table->timestamps();
}
}
削除処理はこんな感じ。
public down(){
//テーブルがあれば削除
Schema::dropIfExists('user');
//テーブルを削除
// Schema::drop('user');
}
主なフィールド設定
プライマリキーの設定
自動で整数値が割り当てられるプライマリキーの設定です。 レコードのIDなどで利用されます。
$table->increment(フィールド名);
型を指定して設定
$table->{型}('フィールド名');
//例
$table->integer('age');
修飾子の追加
アロー演算子でつなぐことで修飾子を追加することができます。
$table->integer('email') -> unique() -> nullable();
マイグレーションを実行
以下でマイグレーションファイルに定義したテーブルが作成されます。
php artisan migrate
その他のマイグレーション
機能 | コマンド |
---|---|
最後のマイグレーション操作をロールバックする | php artisan migrate:rollback |
全マイグレーションをロールバックする | php artisan migrate:reset |
全マイグレーションをロールバックし、全部実行し直す | php artisan migrate:refresh --seed |