Laravel学習帳

Laravel5.2の学習帳です。開発環境はXAMPP for Windows 5.6.19 / 本番環境はさくらサーバー(スタンダード)

基礎知識

マイグレーション(ロールバック作業)

"ロールバック" とはDBの更新時に何らかの障害が起こったときに、前の状態にまで戻ることをいいます。

これは実際にDBを構築していてよくあります。

Laravelのマイグレーション機能にもこの "ロールバック" の機能はあります。

今回はロールバックについてのエントリーをします。

マイグレーションテーブル

マイグレーションを実行すると、マイグレーションファイルは「migrations」テーブルに登録されます。

show tables;

「migrations」テーブルを確認。

select * from migrations;

 

ロールバック

ロールバックを実行すると「migratinos」テーブルにあるマイグレーションの操作を一つ手前に戻します。

>select * from migrations;

artisanコマンドでロールバックを実行します。

php artisan migrate:rollback

再度、「migrations」テーブルの中身を確認すると一番下にあったマイグレーションが消えていることが確認できます。

【 解説 】
このあとの作業としては、ロールバックしたマイグレーションファイルを修正して再度

php artisan migrate

を実行します。

 

チュートリアル

前回やったチュートリアルの「employees」テーブルの変更を行います。

・「name」カラムの長さを変更(32→50)
・「name」カラムの後に「age」カラムを追加

このあとロールバックで元に戻します。

 

手順

1)更新用マイグレーションファイルの作成
2)更新用マイグレーションファイルの編集
3)マイグレーションの実行
4)テーブルを確認
5)ロールバックの実行
6)テーブルの確認

 

1)更新用マイグレーションファイルの作成

php artisan make:migration modify_employees_table --table=employees

 

2)更新用マイグレーションファイルの編集

public function up()
{
  Schema::table('employees', function (Blueprint $table){
    $table->string('name', 50)->change();
    $table->integer('age')->after('name')->default(0);
  });
}

public function down()
{
  Schema::table('employees', function (Blueprint $table) {
  $table->string('name', 32)->change();
  $table->dropColumn('age');
  });
}

上のコードを少し解説します。

$table->string('name', 50)->change();

name カラムの長さを32から50に変更します。

$table->integer('age')->after('name')->default(0);

nameカラムの後にint型でageカラムを追加。デフォルト値に0を指定。

->after や ->default はカラムを追加するときに使用できる修飾子で "カラム修飾子" と呼ばれます。

 

3)マイグレーションの実行

php artisan migrate

 

4)テーブルを確認

変更した内容が反映されているか確認

desc employees;

 

5)ロールバックの実行

php artisan migrate:rollback

 

6)テーブルの確認

desc employees;

変更をかける前の状態になったことが確認できます。

ロールバックについては以上です。

 

-基礎知識