ハマログ

株式会社イーツー・インフォの社員ブログ

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/フォルダにできます。

01993

<?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()でバージョンダウン時のコマンドを書きます。

&lt;?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

できた。すごかりし。

01994

ロールバック

バージョンアップした変更を元に戻します。プロジェクトのルートディレクトリでmigrate:rollbackします。

D:\xampp\htdocs\project>php artisan migrate:rollback
Rolled back: 2013_07_25_142353_create_announces_table

なくなったー!

01995

おわりに

今回もとても簡単でしたね-。

つづく。

かねこ

EloquentEloquent ORMLaravelmigrationMigrationsORMPHP

kaneko tomo   kaneko tomo   2013年7月25日


関連記事

Laravelのテンプレート内でURLによる条件判定を実装する

Laravelのテンプレート(blade)内で、URLによる条件判定を実装する方…

BBC micro:bitつかってみた

AWS IoT ボタンでチャットワークに通知するにつづいて、6月に購入したBBC…

よく知られているプログラミングの命名法

システムを複数人で開発するときに、記法や単位を一定のルールで統一します。 これを…


← 前の投稿

次の投稿 →