我正在尝试将控制台迁移到另一个connecton,但是关闭失败
我有联系
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=pos_db',
....other configs
],
'connection_identifier' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=newdbo',
...other configs
],
我在控制台中拥有
public function init()
{
$this->db = 'connection_identifier';
parent::init();
}
public function safeUp()
{
$this->createTable('database_connection_domains', [
'id' => $this->primaryKey(),
'domain'=>$this->text()->notNull(),
'connection_id'=>$this->integer()->notNull(),
'created_at' => $this->integer()->notNull(),
'status'=>$this->integer()->defaultValue(0),
'FOREIGN KEY (connection_id) REFERENCES database_connections (id) ON DELETE RESTRICT ON UPDATE CASCADE',
]);
}
/**
* {@inheritdoc}
*/
public function safeDown()
{
$this->dropTable('database_connection_domains');
}
当我进行向上迁移时,在newdbo
数据库上正确创建了该数据库。在不删除表的down命令期间出现问题。我该如何使它掉落桌子。
当我运行/yii migrate/fresh
时遇到错误Base table or view already exists: 1050 Table 'database_connections' already exists
,这意味着该表未删除
我想念什么?
答案 0 :(得分:1)
./yii migrate/fresh
不使用迁移来清理数据库,而是使用custom implementation来按正确的顺序删除所有表。因此,永远不会使用数据库组件的设置。您需要在命令调用中配置数据库:
./yii migrate/fresh --db=connection_identifier