Как удобнее хранить миграции в yii2?

Пользователь

от rachel , в категории: PHP , 10 месяцев назад

Как удобнее хранить миграции в yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от ella , 10 месяцев назад

@rachel 

В Yii2 рекомендуется хранить миграции в виде PHP-файлов в каталоге migrations в корневой директории проекта.


Название миграционного файла должно соответствовать следующему формату:


m<timestamp>_<name>.php


где <timestamp> - время в формате UNIX timestamp, а <name> - название миграции, например:


m1606742669_create_table_users.php


Внутри файла миграции необходимо создать класс, наследующийся от yiidbMigration и содержащий метод up(), который определяет действия, выполняемые при применении миграции, и метод down(), который определяет действия при откате миграции.


Пример файла миграции создания таблицы пользователей:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
createTable('users', [
            'id' => $this->primaryKey(),
            'username' => $this->string()->notNull(),
            'email' => $this->string()->notNull(),
            'password_hash' => $this->string()->notNull(),
            'created_at' => $this->integer()->notNull(),
            'updated_at' => $this->integer()->notNull(),
        ]);
    }

    /**
     * {@inheritdoc}
     */
    public function down()
    {
        $this->dropTable('users');
    }
}


После создания миграции ее необходимо применить к базе данных, используя команду:

1
yii migrate/up


При необходимости можно откатить миграцию командой:

1
yii migrate/down


Также можно создавать новые миграции автоматически с помощью команды:

1
yii migrate/create <name>


где <name> - название новой миграции.