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

Метод down класса AbstractMigration

Метод down принадлежит абстрактному классу AbstractMigration и вызывается при откате миграции командой doctrine:migrations:migrate с указанием предыдущей версии. Внутри метода описываются SQL-запросы, которые отменяют изменения, сделанные в методе up. Метод не принимает параметров и не возвращает значения.

Синтаксис

<?php public function down(Schema $schema): void { // rollback logic } ?>

Пример

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

<?php namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; final class Version20240101000000 extends AbstractMigration { public function up(Schema $schema): void { $this->addSql('CREATE TABLE article (id INT AUTO_INCREMENT NOT NULL, title VARCHAR(255) NOT NULL, PRIMARY KEY(id))'); } public function down(Schema $schema): void { $this->addSql('DROP TABLE article'); } } ?>

Пример

Давайте откатим миграцию командой:

php bin/console doctrine:migrations:migrate prev

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

"Migration Version20240101000000 reverted"

Пример

Давайте удалим столбец title из таблицы article при откате:

<?php namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; final class Version20240101000001 extends AbstractMigration { public function up(Schema $schema): void { $this->addSql('ALTER TABLE article ADD title VARCHAR(255) NOT NULL'); } public function down(Schema $schema): void { $this->addSql('ALTER TABLE article DROP title'); } } ?>

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

  • класс AbstractMigration,
    который является базовым для всех миграций
  • метод up,
    который описывает применение миграции
  • метод addSql,
    который добавляет SQL-запрос в миграцию
  • метод abortIf,
    который прерывает выполнение миграции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить