实际上我创建了一个应用程序 请有人说我。如何与mysql和不同的oracle服务器建立连接。 以及如何更新我的mysql字段,以便自动更新我的oracle erp系统。
答案 0 :(得分:1)
按照@Paritosh Mahale评论过的链接:
Multiple database connections and Yii 2.0
关于更新数据库中字段的部分,您可以通过以下方式使用迁移:
/yiic migrate # The default component db
/yiic migrate --db=db1 # Connection db component mysql
/yiic migrate --db=db2 # Connection oracle component db
并且您需要在具有不同选项--db
的两个数据库上运行相同的迁移命令。
或者您可以覆盖init()
的{{1}}方法:
yii\db\Migration
并使用如下:<?php
use yii\db\Migration;
class m150101_185401_create_news_table extends Migration
{
public function init()
{
$this->db = 'db2';
parent::init();
}
}
此迁移将应用于db2。
如果您有多个使用相同数据库的迁移,建议您使用上述/yiic migrate
代码创建基本迁移类。然后,每个迁移类都可以从此基类扩展。
如果要为每个数据库连接分别建立迁移路径,可以这样做:
init()
对于应用迁移&#34;自动&#34;在一个命令中的每个数据库中,您可以(只是一个想法)扩展yii\console\controllers\MigrateController类并添加属性yii migrate --migrationPath=@app/migrations/db1 --db=db1
yii migrate --migrationPath=@app/migrations/db2 --db=db2
...
。在将此属性添加到public $dbs
后,当您调用migrate命令时,您可以传递这样的参数:
options()
因此您可以管理该参数以执行/yiic migrate --dbs=db1,db2
$ dbs;
<强> [编辑] 强>
答案的某些部分来自这里:Migrating Multiple Databases
答案 1 :(得分:0)
使用Paritosh Mahale链接。假设您使用带有getDb()的OracleModel返回oracle连接,并使用getDb()返回mysql连接的MySql模型。然后在MySql模型中定义afterSave事件hendler:
public function afterSave()
{
$oracleModel = OracleModel::findOne(/* condition */);
$oracleModel->someField = 123;
$oracleModel->save();
}