Есть ли возможность создать migration per entity?

Да, в Symfony существует возможность создания миграций для каждой сущности (entity).

Миграции в Symfony - это способ создания, изменения и удаления схемы базы данных. Они позволяют разработчикам контролировать изменения в структуре базы данных в рамках приложения. Миграции облегчают работу с базой данных и обеспечивают согласованность между разработчиками, даже если они работают над тем же проектом.

Создание миграции для каждой сущности может быть полезным в случае, если у вас есть несколько сущностей, которые будут изменяться или добавляться в вашу базу данных независимо друг от друга.

Для создания миграции для конкретной сущности вам необходимо выполнить несколько шагов:

  1. Убедитесь, что у вас установлен и настроен DoctrineMigrationsBundle в вашем приложении Symfony. Если вы не сделали этого, выполните следующие команды в консоли, чтобы установить бандл и настроить его:
composer require doctrine/doctrine-migrations-bundle
  1. Создайте новую миграцию с помощью команды make:migration. В качестве аргумента передайте имя миграции, например:
bin/console make:migration create_product_table
  1. После выполнения этой команды Symfony создаст новый класс миграции в папке src/Migrations вашего проекта. Откройте этот файл и найдите пустые методы up и down.
  1. В методе up вы можете написать SQL-код для создания таблицы или внесения изменений в существующую. Например, для создания таблицы "Product" вы можете использовать следующий код:
public function up(Schema $schema) : void
{
    $this->addSql('CREATE TABLE product (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(id))');
}
  1. В методе down вы должны написать обратный код для удаления изменений, внесенных в up. Например:
public function down(Schema $schema) : void
{
    $this->addSql('DROP TABLE product');
}
  1. После того, как вы определили все изменения, которые должны быть внесены в миграцию, сохраните файл и выполните команду doctrine:migrations:migrate, чтобы применить миграцию:
bin/console doctrine:migrations:migrate

Теперь у вас есть миграция, которая добавляет таблицу product в вашу базу данных. Если вам нужно создать миграцию для другой сущности, вы можете просто повторить эти шаги для каждой сущности, внося соответствующие изменения в методы up и down.

Этот подход позволяет создавать и применять миграции независимо для каждой сущности, что облегчает сопровождение и управление базой данных вашего приложения.