Есть ли команда, выполняющая миграции в тестовой базе данных в Yii?Yii: как выполнить перенос db в тестовой базе данных?
ответ
AFAIK, no. Но вы можете изменить подключение к базе данных в config/console.php и запустить его в другой базе данных.
Да, вы просто изменяете идентификатор соединения, чтобы указать на ваш testdb. Итак, в config/main.php вы просто добавили:
'components'=>...
'testdb'=>array(
'class'=>'CDbConnection',
'connectionString' => 'mysql:host=localhost;dbname=my_test_db',
'emulatePrepare' => true,
'username' => 'myuser',
'password' => 'mypass',
'charset' => 'utf8',
);
...
Обратите внимание на свойство в этом массиве.
После того, как вы есть, что вы можете запустить миграцию, написав на терминал:
protected/yiic migrate --connectionID=testdb
Есть ли способ включить это в инициализацию моих тестовых примеров, чтобы он автоматически выполнялся? – joerx
Имейте в виду, что в миграции может быть код, в котором используется Yii :: app() -> db. Потребовалось некоторое время, чтобы понять, почему миграция, использующая компонент DbAuthmanager, не сработала для моего теста db ... Поскольку команда перенаправления - это консольная команда, не нужно ли config/console.php добавлять компонент testdb? – Sisko78
Не правда больше, см ответ Эрика. – phemios