【Laravel5】データベースのマイグレーション

【Laravel5】データベースのマイグレーション

【Laravel5】データベースのマイグレーション

Migrations – Laravel5 Fundamentalsを元に付加情報をつけて記載しています。

GitHubにサンプルプロジェクトがあります。

ryo-ogata/learning-laravel-5

データベースのマイグレーションとは?

Laravel5のマイグレーションは、データベースへの変更(テーブル作成、制約変更など)を.phpファイルで管理し、さらにバージョンもLaravel5の機能で管理できるという便利なものです。

RailsのActiveRecordを利用したことがあれば、まったく似たような仕組みだと思うはずです。

データベースには当然テーブルを作りますが、そのテーブルを作る手段はいくつかあります。よくあるのはMySQL WorkbenchやpgAdminなどのGUIを使ってテーブルを作り、バージョン管理はリポジトリにまかせるケースかと思います。

この場合、管理する資産が増える(MySQL Workbenchなら.mwbファイル、SQLファイル)ことと、現在のDBバージョンとソースコードのバージョン差異がでてしまったりなど危険です。

しかし、プロジェクトの進行上、先にDB定義やSQLファイルを必要とする場合には、いちいちマイグレーションを書き直すかどうかは現場の判断次第かと思います。

実際にマイグレーションを使ってみる

まずはプロジェクトを確認してみましょう。

すでにプロジェクトを作った時に、自動でファイルが置かれているはずです。

  1. MySQLを使うようにする。
    • app/config/database.php

  2. マイグレーションを実行する

    VM上で以下のコマンドを打ってみましょう。

    ※もしも失敗した時※ 以下のコマンドを打ってみてから再度マイグレーションしてみましょう。

  3. テーブルを確認する。

    これでusersテーブルと、password_resetsテーブルに加えて、マイグレーションのバージョン管理を行うためのmigrationsテーブルができあがります。

  4. マイグレーションの状態を確認する。

マイグレーションのロールバック

  1. ロールバックする。

  2. テーブルを確認する。

  3. マイグレーションの状態を確認する。

マイグレーションを追加する

  1. PHPファイルを追加する。

  2. テーブル定義を編集する。
    • database/migrations/2015_01_01_010101_create_articles_table.php

  3. マイグレーションを実行する

一度作ったテーブルを編集する

さきほど作ったarticlesテーブルにカラムを追加する。

  1. PHPファイルを追加する。

  2. カラム追加のロジックを書く。
    • database/migrations/2015_02_02_020202_add_excerpt_to_articles_table.php

  3. マイグレーションを実行する

  4. カラムが追加されたか確認する

まとめ

Laravel5のデータベースのマイグレーションについて紹介しました。

このマイグレーション機能を使えば、DB変更を含むようなリリースに対してテストを簡単に何回も試すことができますし、DB変更の差分をSQLではなく、このようにコードにしておくことでわかりやすさが増すというメリットもあります。

次回はLaravel5から実際にデータベースにアクセスする方法を紹介したいと思います。

Comments are closed, but trackbacks and pingbacks are open.