LoginSignup
7
7

More than 5 years have passed since last update.

CakePHP3でマイグレーションこんな感じ?

Posted at

はじめに

ちょっと色々と準備が必要そうだったので試してみた。
ScaffoldとDB作成は別の様子(ScaffoldしてもDBは作成されないと思う、合ってるのかな)なので、まずマイグレーションだけ調べてみた。

本家ドキュメントはこれ。マイグレーションはここではやってないけど。
http://book.cakephp.org/3.0/en/tutorials-and-examples/bookmarks/intro.html

マイグレーションについてはこれ。
http://book.cakephp.org/3.0/en/migrations.html

手順

ファイル作成

基本的にプロジェクトのルートでコマンドを叩く想定。

$ bin/cake bake migration create_test

すると、

config/Migrations/20150912015727_create_tests.phpみたいな名前のファイルが作られる。これが雛形。

ファイル修正

作ったファイルの内容を修正する。例えば下記のような感じ。

config/Migrations/20150912015727_create_tests.php
<?php
use Migrations\AbstractMigration;

class CreateTests extends AbstractMigration
{
    /**
     * Change Method.
     *
     * More information on this method is available here:
     * http://docs.phinx.org/en/latest/migrations.html#the-change-method
     * @return void
     */
    public function change()
    {
        $table = $this->table('tests');

        //このあたりを記述する
        $table
          ->addColumn('name', 'string') //文字列カラム
          ->addColumn('description', 'text') //テキストカラム
          ->addTimestamps(); // created_at、updated_atを作る

        $table->create();
    }
}

DBに反映!

$ bin/cake migrations migrate

して、テーブルが無事に作成されればOK!

その他・気づいたこと

  • 基本は not null 制約がかかる様子なので、nullにしたければ明示する。
  • IDはAutoIncrementで作成される
  • updated_atはnullableで作成される(Railsとは違うかな?)。

外部ライブラリを取り込んだものの様子なので、細かいことはこちらを見ると良いらしい。indexやforeign_key等もあるらしいし、基本的なところはどうにかなるのではないかと。
http://docs.phinx.org/en/latest/migrations.html

下記はとても参考になった。多謝。
http://qiita.com/ukisoft/items/68c35d56a913d0afde6e

7
7
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
7
7