gpt4 book ai didi

php - 具有多个数据库的 Yii 迁移 - 指定 DB?

转载 作者:行者123 更新时间:2023-11-29 07:54:37 25 4
gpt4 key购买 nike

我们有一个基于 Yii 构建的大型应用程序。

到目前为止,迁移是通过在 phpliteadmin/phpmyadmin 中复制粘贴 SQL 转储来完成的,但这不是很方便。

我想使用 CDbMigrationyiic migrate

问题是我们有两个数据库 - 一个用于配置和设置的小型 SQLite,以及用于存储一些历史记录的大型 mysql。

如何指定迁移属于哪个数据库?

这是基本的迁移结构,用于说明。

class do_stuff extends CDbMigration
{
public function up()
{
// create table
}

public function down()
{
// drop table
}
}

最佳答案

config.php 文件中,在 components 数组中指定数据库连接。

    'db1'=>array(
'class'=>'CDbConnection',
'connectionString' => 'mysql:charset=utf8mb4;host=localhost;dbname=dbname1',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
),
'db2'=>array(
'class'=>'CDbConnection',
'connectionString' => 'mysql:charset=utf8mb4;host=localhost;dbname=dbname2',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
),

然后在迁移中,您可以执行以下操作:

protected $dbConnection1;
protected function getDbConnection1()
{
if (null !== $this->dbConnection1) {
return $this->dbConnection1;
}

return $this->dbConnection1 = Yii::app()->getComponent('db1');
}

重复第二次连接。

然后使用这些方法获取每个数据库的 CDbConnection,您可以从中创建要执行的命令。

关于php - 具有多个数据库的 Yii 迁移 - 指定 DB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25490193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com