最近Yii2を触っているので遊びながらやったことをメモ。
Yii2でサイト構築する際にまず行うこと・・・
DBのテーブル作成を行う人が多いと思います。
SQLをバージョン管理してもいいんですが、
折角なのでDB Migrationを使ってコンソールからコマンド叩いてテーブルを構築します。
※DBは作成済みでyiiコマンドを実行出来る状況になっていることが前提
yii migrate/create create_tablename_table
上記コマンドを実行すると
m150620_123401_create_tablename_table.phpというファイルが
@app/migrations以下に作成されます。
ファイル名は作成日時を使って
m<YYMMDD_HHMMSS>_<Name>.php
となってます。
このファイルを開いてみると
<?php use yii\db\Schema; use yii\db\Migration; class m150620_123401_create_tablename_table extends Migration { public function up() { } public function down() { echo "m150620_123401_create_tablename_table cannot be reverted.\n"; return false; } }
このファイルを修正していきます。
<?php use yii\db\Schema; use yii\db\Migration; class m150620_123401_create_tablename_table extends Migration { public function up() { $this->createTable('tablename', [ 'id' => Schema::TYPE_PK, 'title' => Schema::TYPE_STRING . ' NOT NULL', 'content' => Schema::TYPE_TEXT, ]); } public function down() { $this->dropTable('tablename'); } }
これだけです。
up()がテーブル作成時に使用されるfunction
down()がテーブル削除時に使用されるfunctionになっています。
テーブルを作成するにはコンソールから
yii migrate/to m150620_123401_create_tablename_table
これでtablenameっていうテーブルが作成されます。
カラムはidがプライマルキー、titleがSTRINGでNOT NULL、contentがtextになっています。
テーブルを削除するにはコンソールから
yii migrate/down
このコマンドで最も最近作成されたテーブルが削除されます。
ちなみにこのコマンド実行するとどのテーブルを削除するか確認する画面が出てくるので、
削除対象のテーブルを確認してから削除を実行出来ます。