РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1234 of 1361 menu

Команда make:migration

Команда make:migration создаёт файл миграции в каталоге migrations/. Миграция описывает изменения схемы базы данных: создание таблиц, добавление или удаление колонок. Первым параметром можно передать имя миграции, которое попадёт в имя класса и файла.

Команда доступна благодаря пакету doctrine/doctrine-migrations-bundle и symfony/maker-bundle. После генерации файл содержит пустые методы up и down, которые нужно заполнить SQL-операциями или вызовами $this->addSql.

Синтаксис

php bin/console make:migration [name]

Пример

Давайте создадим миграцию для таблицы статей:

php bin/console make:migration create_article_table

После выполнения команды в каталоге migrations/ появится файл с классом миграции:

<?php declare(strict_types=1); namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; final class Version20240101120000 extends AbstractMigration { public function getDescription(): string { return 'Create article table'; } public function up(Schema $schema): void { $this->addSql('CREATE TABLE article ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, title VARCHAR(255) NOT NULL, content CLOB NOT NULL, created_at DATETIME NOT NULL )'); } public function down(Schema $schema): void { $this->addSql('DROP TABLE article'); } } ?>

Метод up выполняется при применении миграции, а метод down - при откате. Для применения миграции используется команда:

php bin/console doctrine:migrations:migrate

Результат выполнения команды:

"Migrating up to 20240101120000 from 0"

Пример

Давайте создадим миграцию для добавления колонки status в таблицу article:

php bin/console make:migration add_status_to_article

Заполним метод up добавлением колонки:

<?php declare(strict_types=1); namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; final class Version20240101130000 extends AbstractMigration { public function getDescription(): string { return 'Add status column to article table'; } public function up(Schema $schema): void { $this->addSql('ALTER TABLE article ADD status VARCHAR(255) NOT NULL'); } public function down(Schema $schema): void { $this->addSql('ALTER TABLE article DROP COLUMN status'); } } ?>

После применения миграции в таблице появится новая колонка. Проверить статус миграций можно командой:

php bin/console doctrine:migrations:status

Результат выполнения команды:

"Executed 1 out of 2 migrations"

Смотрите также

  • команда make:entity,
    которая создаёт класс сущности Doctrine
  • команда doctrine:migrations:migrate,
    которая применяет миграции к базе данных
  • команда doctrine:migrations:diff,
    которая генерирует миграцию по разнице схем
  • команда doctrine:migrations:status,
    которая показывает статус миграций
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить