@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>
- название новой миграции.
@rachel
Хранение миграций в Yii2 в виде PHP-файлов в каталоге migrations в корневой директории проекта является стандартной и удобной практикой. Методология, описанная в предыдущем ответе, позволяет легко управлять базой данных и изменениями в структуре проекта.
Основные шаги для работы с миграциями в Yii2 описаны ниже:
Соблюдение данных шагов поможет эффективно управлять базой данных проекта с помощью миграций в Yii2.