Выполнение миграций в консоли yii2

114
17 марта 2021, 21:10

Есть проект. В нем есть миграции. При разворачивании проекта на новой машине выполняем след. действия:

1.php init
2.php yii migrate/up

Как php yii migrate/up запихнуть в php init, чтобы не делать лишние действия? (На самом деле команд больше, просто для примера привел эти)

Answer 1

Например, создаете контроллер ProjectController в консольном приложении, экшн actionInit().

public function actionInit()
{
    $this->printHeader('Migration up');
    $this->runMigrationWithMarks();
    $this->printHeader('Init users');
    $this->run('local-users/init-default-users', ['interactive' => 0]);
    $this->printHeader('Set default parameters');
    $this->setDefaultParams();
    ...
}
/**
 * Migration up
 *
 * @throws \Exception
 */
private function runMigrationWithMarks()
{
    try {
        ...
        $this->run('migrate/up', ['interactive' => 0]);
        ...
    } catch (\Exception $e) {
        throw new \Exception($e->getMessage());
    }
}

Прописываете нужные команды, запускаете php yii project/init. Но, init, мне кажется, все равно нужно отдельно запускать.

READ ALSO
Сохранить картинку на сервер

Сохранить картинку на сервер

Ребят, всем привет! столкнулся с такой проблемой - сохранение картинки на сервер

140
Получить свойство Protected из объекта

Получить свойство Protected из объекта

Приходит от апи ответМне нужно получить некоторые значения из него, но свойство xmlData protected и не могу получить доступ к нему

99
PHP Проблема при работе с классом

PHP Проблема при работе с классом

Создаю класс My_Class, в нем хранится информация об авторизацииЛогины и пароли нужно получать извне и записывать в массив $authorization

132
Сохранить session_id() в cookie на долгое время

Сохранить session_id() в cookie на долгое время

У меня есть простое решение на этот счет

106