Метод 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,
который прерывает выполнение миграции