のぐそんブログ

暗いおじさんがシコシコ書くブログです。

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