LoginSignup
5
6

More than 5 years have passed since last update.

Cakephpにマイグレーションを使う

Last updated at Posted at 2016-03-22
  • マイグレーションとはDBの構成変更を管理するための仕組み
  • CakePHPではマイグレーションファイルを通してDBの構成変更を行なうことで、複数メンバーのDB構成を統一できる
  • 実行していないマイグレーションファイルを適応するやり方とschema.phpからスキーマを再現する2つの方法がある

初期準備

  • マイグレーション管理テーブルの作成
    • マイグレーションを管理するためのschema_migrationsテーブルを作成
Console/cake Migrations.migration run all -p 
  • 初期マイグレーションの作成
    • app/Config/Schema/schema.phpが既に存在する場合は内容の比較を行ってしまうので、一旦削除しておく
    • -fをつけるのはモデルの存在しないテーブルも含めたマイグレーションファイルを作成するため
Console/cake Migrations.migration generate -f
  • 以下はまだschema.phpがないため、現在のデーターベースを丸々dumpするかを聞いているのでyを選択する
Do you want generate a dump from current database? (y/n)
  • 以下はマイグレーションファイルにつける名前を入力する。DBへ加える変更の内容(今回は初期のテーブルをマイグレーションにするためinitialMigration)などの名前にする
  • app/Config/Migration/配下にマイグレーションファイルが作成される
  • マイグレーションファイルにはタイムスタンプが先頭に自動で付与され、このタイムスタンプがマイグレーションの実行順序を決める
Please enter the descriptive name of the migration to generate: 
  • また以下のコマンドで現在のデータベースの構成情報が記述されているschema.phpを作成する。これによってapp/Config/Schema/schema.phpが作成され、以降マイグレーションファイルを自動生成する場合はこのschema.phpとデータベースと比較して作成されるようになる
Console/cake schema generate –f 
  • マスターデータを用意しておかないと、複数ユーザー間で同じ初期データにならないので必須

初期準備以降

  • 初期のマイグレーションファイルとスキーマが用意出来たら、後は変更があった分のマイグレーションファイルをセットしていく

  • 自動生成と自分でファイルを書く方法がある

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6