Изменение компонента 'db', для выполнения миграций

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
long399
Сообщения: 96
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

Изменение компонента 'db', для выполнения миграций

Сообщение long399 »

Компонент использующийся для работы с БД у меня называется по-другому (не 'db'). Из-за этого не получается работать с миграциями. Подскажите, пожалуйста, как это можно исправить ?
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Изменение компонента 'db', для выполнения миграций

Сообщение yiiliveext »

Код: Выделить всё

public function init()
{
    $this->db = 'db2';
    parent::init();
}
long399
Сообщения: 96
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

Re: Изменение компонента 'db', для выполнения миграций

Сообщение long399 »

yiiliveext писал(а): 2019.08.15, 10:44

Код: Выделить всё

public function init()
{
    $this->db = 'db2';
    parent::init();
}
Переопределил во всех классах миграций метод инициализации и все равно возникает ошибка: Exception 'yii\base\InvalidConfigException' with message 'Failed to instantiate component or class "db".' :(
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Изменение компонента 'db', для выполнения миграций

Сообщение yiiliveext »

Добавьте в конфиг

Код: Выделить всё

'controllerMap' => [
    'migrate' => [
        'class' => '\yii\console\controllers\MigrateController',
        'db' => 'db2'
    ],
],
long399
Сообщения: 96
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

Re: Изменение компонента 'db', для выполнения миграций

Сообщение long399 »

yiiliveext писал(а): 2019.08.15, 14:44 Добавьте в конфиг

Код: Выделить всё

'controllerMap' => [
    'migrate' => [
        'class' => '\yii\console\controllers\MigrateController',
        'db' => 'db2'
    ],
],
Спасибо за помощь! Теперь все нормально работает.

UP: если в конфиге добавить данный код, тогда можно не переопределять метод init. И без этого все работает
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Изменение компонента 'db', для выполнения миграций

Сообщение yiiliveext »

long399 писал(а): 2019.08.16, 04:45 UP: если в конфиге добавить данный код, тогда можно не переопределять метод init. И без этого все работает
Естественно. В методе init переопределяется свойство db для каждой отдельной миграции. В controllerMap вы определяете глобально для контроллера, который потом создает классы миграций с этим параметром по-умолчанию.
Ответить