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

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

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

Сообщение long399 » 2019.08.15, 10:20

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

yiiliveext
Сообщения: 334
Зарегистрирован: 2019.08.13, 01:49

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

Сообщение yiiliveext » 2019.08.15, 10:44

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

public function init()
{
    $this->db = 'db2';
    parent::init();
}

long399
Сообщения: 11
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

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

Сообщение long399 » 2019.08.15, 13:20

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
Сообщения: 334
Зарегистрирован: 2019.08.13, 01:49

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

Сообщение yiiliveext » 2019.08.15, 14:44

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

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

'controllerMap' => [
    'migrate' => [
        'class' => '\yii\console\controllers\MigrateController',
        'db' => 'db2'
    ],
],

long399
Сообщения: 11
Зарегистрирован: 2019.08.13, 08:03
Откуда: г. Новосибирск

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

Сообщение long399 » 2019.08.16, 04:45

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

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

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

UP: если в конфиге добавить данный код, тогда можно не переопределять метод init. И без этого все работает

yiiliveext
Сообщения: 334
Зарегистрирован: 2019.08.13, 01:49

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

Сообщение yiiliveext » 2019.08.16, 10:07

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

Ответить