Инструменты пользователя

Инструменты сайта


yii:yii2:multipledb

Это старая версия документа!


Multiple database connections

В config добавить вторую конфигурацию базы данных ниже следующим образом :

return [
    'components' => [
        'db' => [
             'class' => 'yii\db\Connection',
             'dsn' => 'mysql:host=db;dbname=dev',
             'username' => 'root',
             'password' => '2619192',
             'charset' => 'utf8',
        ],
        'db2' => [ //mssql_octell
            'class' => 'yii\db\Connection',
            'dsn' => 'sqlsrv:Server=192.168.103.2,1038;Database=oktell', // MSSql АТС Oktell
            'username' => 'sa',
            'password' => '123',
 
        ],
        ..........................

теперь вы можете просто генерировать запросы:

// To get from db1
Yii::$app->db->createCommand((new \yii\db\Query)->select('*')->from('tbl_name'))->queryAll()
 
// To get from db2
Yii::$app->db2->createCommand((new \yii\db\Query)->select('*')->from('tbl_name'))->queryAll()

Если вы используете активную модель записи, в модели можно определить:

public static function getDb() {
    return Yii::$app->db2;
}

Если вы установили db1в getDb() методе, результат будет получен с db1 и так далее.

ModelName::find()->select('*')->all();
yii/yii2/multipledb.1597910134.txt.gz · Последние изменения: 2023/01/12 12:16 (внешнее изменение)