Laravel migrationファイルの基本的な書き方

デフォルトで用意されているmigrationファイルを眺めて基本的な書き方を学ぶ.
概要は次の通り.

動作環境

  • centOS6.8
  • Laravel5.3
  • MySQL5.7.15

参考

migrationってなに

マイグレーションはデータベースをバージョンコントロールする一手法です。

引用: Laravel 5.dev マイグレーションと初期値設定 | readouble.com

つまりこういうこと.

  • Laravelにおけるmigraitonとは
  • migraitonファイル と
  • laravelのコマンド で
  • DBのtable がいい感じに作れる
  • そして, テーブルをある状態まで戻すこと(ロールバック)が可能

migrationで何ができるのか

次のようなことが可能.

  • テーブル作成
  • テーブル更新
  • ロールバック

ロールバックとは, テーブルを過去の状態に戻すこと.

migrationの使い方

migration実行手順はざっくり次のようになる.

  1. SQL文でDB作成 (済)
  2. migrationファイルを作成
    • ここでどんなテーブル構造にするかを定義する
  3. migration実行
    • migrationファイルで定義した通りにテーブルが作成される
  4. MySQLで確認
    • 意図したテーブルが出来上がっているか確認する

今回は既存のmigrationファイルを眺めるので, これらの手順は踏まない.
これらの手順を踏み, migrationファイルを作成した記事はこちら.

Laravel migration 実践
仕様が変わる度にDB構造も変化しちゃう. 私が今開発中のプロジェクトはそんな状態. これまではゴリゴリSQL文とshell scriptで...

デフォルトで用意されているmigraitonファイルを眺める

次のファイルの中身を見てみる.

  • /database/migrations/2014_10_12_000000_create_users_table.php

upメソッド, downメソッド について

  • upメソッド
    • 新しいテーブル、カラム、インデックスをDBに追加するために使用する
  • downメソッド
    • upメソッドが行った操作を元に戻す

Schema::create()

upメソッドを見ると Schema::create() が使われている.

  • Schema::create('テーブル名', クロージャ)
    • 新たなテーブルを作成する
    • 第1引数はテーブル名
    • 第2引数はテーブル構造を定義するクロージャ
      • クロージャ内で定義するのは, いわゆるテーブル構造
      • 型だったり, 文字列長だったり。

$table->メソッド

ここではテーブル構造を定義している.
使用可能なメソッドは公式ドキュメントで紹介されている.

一先ず, ここで使われているメソッドの意味をまとめてみる.

指定可能なカラムタイプ(抜粋) 意味
increments() PRIのこと
string() VARCHARのこと
unique() 指定したカラムの値を一意にする
rememberToken() VARCHAR(100) NULLのremember_tokenを追加
timestamps() NULL値可能なcreated_at, updated_atカラム追加

参考: 使用できるカラムタイプ | readouble.com

()内にカラム名を指定する.

ここでは次の2点に注目.

  • unique()
  • rememberToken()

unique について

「指定したカラムの値を一意にする」 っていう言い方は少し難しい.
つまり, 一つのテーブル内で同じ値を持っちゃダメ, という宣言をしているということ

今回の例では email カラムに対してuniqueが適用されている.

$table->string('email')->unique();

つまり, 一つのテーブル内で同じメールアドレスの登録を禁止するということ.

remember_token について

なんとなく利用していた remember_token について.
remember_tokenは次の目的で使用される.

継続ログイン

アプリケーションでログイン維持(Remember me)機能を持たせたい場合は、
(中略)
もちろん、”remember me”トークンを保存するために使用する文字列のremember_tokenカラムをusersテーブルに持たせる必要があります。

抜粋 : Laravel 5.3 認証 | readouble.com

もしLaravelでログイン機能を実装するのなら, このカラムは用意した方が良さそう.

今回は以上.

スポンサーリンク
336 x 280 – レクタングル(大)
336 x 280 – レクタングル(大)
  • このエントリーをはてなブックマークに追加

この記事が気に入ったら
いいね!しよう

トップへ戻る