はじめに
ちょっと色々と準備が必要そうだったので試してみた。
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