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

Команда doctrine:migrations:generate

Команда doctrine:migrations:generate создаёт новый файл миграции в каталоге migrations. Файл содержит пустой класс с методами up и down, которые нужно заполнить вручную. Команда полезна, когда изменения схемы не выводятся автоматически через doctrine:migrations:diff, например при переименовании таблиц или колонок, переносе данных или создании сложных индексов.

Первым необязательным параметром передаётся имя версии миграции. Если его не указать, версия будет сгенерирована автоматически по текущей дате и времени. Опция --namespace задаёт пространство имён для класса миграции, а опция --filter-expression ограничивает таблицы, попадающие в миграцию.

Синтаксис

php bin/console doctrine:migrations:generate [version] [--namespace=NAMESPACE] [--filter-expression=FILTER]

Пример

Давайте сгенерируем пустую миграцию без указания версии:

php bin/console doctrine:migrations:generate

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

Generated new migration class to "migrations/Version20240115120000.php"

Пример

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

php bin/console doctrine:migrations:generate 20240115120000

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

Generated new migration class to "migrations/Version20240115120000.php"

Пример

Давайте посмотрим на сгенерированный файл миграции:

<?php declare(strict_types=1); namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; final class Version20240115120000 extends AbstractMigration { public function getDescription(): string { return ''; } public function up(Schema $schema): void { // this up() migration is auto-generated, please modify it to your needs } public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs } } ?>

Пример

Давайте заполним методы up и down реальными SQL-запросами:

<?php declare(strict_types=1); namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; final class Version20240115120000 extends AbstractMigration { public function getDescription(): string { return 'Create article table'; } 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

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

Migrating up to 20240115120000 from 0 ++ migrating 20240115120000 -> CREATE TABLE article (id INT AUTO_INCREMENT NOT NULL, title VARCHAR(255) NOT NULL, PRIMARY KEY(id)) ++ migrated (0.05s)

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

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