Laravelのマイグレーション(Migrations)
こんにちは、かねこです。
はじめに
Laravelでのデータベースマイグレーションの利用方法について書きます。
Laravelというのは、PHPのウェブアプリケーションフレームワークのことです。
ちょういいよ!
Welcome! – Laravel PHP Framework
さて、前回の記事をコピーした所で早速ためしてみましょう
マイグレーションとは
ウェブアプリケーションを開発・運用していると、データベースの構造はどんどん変更されていきます。
この変更を、従来(?)のようにSQLを直接記述するのではなく、フレームワークにより予め決められた形式で記述することで、以下の様な利点を享受することができます。
- 使用するデータベースの種別に依存せずに、データベース構造の変更ができる
- データベースの構造変更を、バージョン管理することができる
- データベースに加えた変更を段階的に、環境に反映することができる
- データベースに加えた変更を、ロールバックすることができる
ちなみに、Laravelのマイグレーションはsymfonyのマイグレーションとほぼイコールです。
さっそく使ってみましょう。
How To Step
マイグレーション用クラスの作成
プロジェクトのルートディレクトリでmigrate:makeします。
D:\xampp\htdocs\project>php artisan migrate:make create_announces_table Created Migration: 2013_07_25_142353_create_announces_table Generating optimized class loader Compiling common classes
できた。デフォルトで、/app/database/migrations/フォルダにできます。
<?php use Illuminate\Database\Migrations\Migration; class CreateAnnouncesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { // } /** * Reverse the migrations. * * @return void */ public function down() { // } }
テーブル作成用スクリプトの記述
スクリプトを記述します。基本的に、Schema Builderでかきますが、別になんでもいいです。
up()でバージョンアップ時のコマンド、down()でバージョンダウン時のコマンドを書きます。
<?php use Illuminate\Database\Migrations\Migration; class CreateAnnouncesTable extends Migration { public function up() { Schema::create('announces', function($table) { $table->increments('id'); $table->string('title', 100); $table->text('message'); $table->timestamps(); $table->softDeletes(); }); } public function down() { Schema::drop('announces'); } }
マイグレーション
マイグレーションします。プロジェクトのルートディレクトリでmigrate:makeします。
D:\xampp\htdocs\project>php artisan migrate Migration table created successfully. Migrated: 2013_07_25_142353_create_announces_table
できた。すごかりし。
ロールバック
バージョンアップした変更を元に戻します。プロジェクトのルートディレクトリでmigrate:rollbackします。
D:\xampp\htdocs\project>php artisan migrate:rollback Rolled back: 2013_07_25_142353_create_announces_table
なくなったー!
おわりに
今回もとても簡単でしたね-。
つづく。
かねこ