Добавление миграции в Yii2 - это процесс создания и применения изменений в базе данных с использованием концепции миграций. Миграции позволяют разработчикам легко добавлять, изменять или удалять таблицы, столбцы и индексы в базе данных.
Для того чтобы создать миграцию в Yii2, вам понадобится выполнить следующие шаги:
1. Создайте новый класс миграции в каталоге migrations
. Название класса должно быть уникальным и соответствовать шаблону <timestamp>_<MigrationName>
. Например, m190912_120000_create_users_table
.
2. Внутри класса миграции определите две основные методы: up()
и down()
. Метод up()
содержит код, который будет выполнен при применении миграции, а метод down()
содержит код, который будет выполнен при откате миграции.
3. В методе up()
вы можете использовать методы класса yiidbMigration
, такие как createTable()
, addColumn()
, createIndex()
и т.д., чтобы создавать таблицы, изменять столбцы или создавать индексы.
4. В методе down()
вы должны определить обратные операции для каждого изменения, выполненного в методе up()
. Например, если вы создали таблицу в up()
, в down()
необходимо удалить эту таблицу.
5. Затем, чтобы применить миграцию, выполните команду yii migrate/up
в командной строке. Yii2 автоматически применит все новые миграции, которые еще не были применены в базе данных.
6. Если вам нужно откатить миграцию, выполните команду yii migrate/down
. Yii2 выполнит метод down()
для последней примененной миграции и удалит ее изменения из базы данных.
Вы также можете использовать команду yii migrate/create <MigrationName>
для создания файла миграции автоматически. Просто укажите имя миграции без временной метки, и Yii2 сгенерирует файл миграции в каталоге migrations
.
Кроме того, миграции могут быть полезны при работе в командной строке, а также при развертывании приложения на разных серверах. Они обеспечивают простой и надежный способ изменения базы данных на всех экземплярах вашего приложения.
Надеюсь, эта информация помогла вам лучше понять, как добавить миграцию в Yii2. Если у вас есть какие-либо дополнительные вопросы, не стесняйтесь задавать.