2017年06月 / 05月≪ 123456789101112131415161718192021222324252627282930≫07月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2013.03.13 (Wed)

Yiiでマイグレーションをテスト用dbで使う

Yiiでテスト用のdbを設定してテストしてると、DBを作ったりするマイグレーションもテスト用DBで使いたくなる。

コンソールでマイグレーションを反映させる場合
yiic migrate

だけど、別のDBに反映させたい場合はコマンドラインオプション
--connectionID=[id]
を使うんだがこのidがどこのどれと紐づくもんなのか最初わからなかった。
デフォルト値はdbでテストにはtestdbって入れろと書いてあっただけだったけどいれたらconnectionIDが無いって出るし。

調べたら
/protected/config/console.php
内のcomponentsに入れたdb設定と紐づく。
本番がmydb,テストがmydb_testだとしたらこんな感じで設定する。


<?php
return array(
'name'=>'My Console Application',
...
// application components
'components'=>array(
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=mydb',
'emulatePrepare' => true,
'username' => 'mydb',
'password' => 'pass',
'charset' => 'utf8',
),
'testyou_db'=>array(
'class'=>'CDbConnection',
'connectionString' => 'mysql:host=localhost;dbname=mydb_test',
'emulatePrepare' => true,
'username' => 'mydb_test',
'password' => 'pass',
'charset' => 'utf8',
),
...
);


--connectionID=[id]のidにtestyou_dbを入れればテスト用に反映される。
yiic migrate --connectionID=testyou_db


※dbじゃない方、testyou_dbには
'class'=>'CDbConnection',
を入れないとこんな感じのエラー出る
exception 'CException' with message 'Object configuration must be an array conta
ining a "class" element.' in xxx\framework\YiiBase.php:193


 |  18:42  |  PHP  |  トラックバック(0)  |  コメント(0)  |  Top↑

Comment

コメントを投稿する

URL
コメント
パス  編集・削除するのに必要
非公開  管理者だけにコメントを表示
 

Trackback

この記事のトラックバックURL

この記事へのトラックバック

 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。