В Symfony для генерации миграций по сущностям используется Doctrine Migrations Bundle. По умолчанию, ожидается, что сущности находятся в директории "src/Entity", но вы можете настроить свою структуру каталогов, если сущности находятся в другом месте.
Чтобы сгенерировать миграции по сущности, вне "src/Entity", нужно выполнить несколько шагов:
1. Установите Doctrine Migrations Bundle, если он еще не установлен. Это можно сделать с помощью Composer, выполнив команду:
composer require doctrine/doctrine-migrations-bundle
2. Зарегистрируйте Doctrine Migrations Bundle в ваших бандлах в файле "config/bundles.php". Убедитесь, что следующая строка добавлена в раздел "DoctrineBundleMigrationsBundleDoctrineMigrationsBundle::class".
3. Создайте файл конфигурации миграций "migrations.yaml". В файле "config/packages" создайте новый файл "migrations.yaml" со следующим содержимым:
doctrine_migrations: migrations_paths: 'ApplicationMigrations': 'путь_к_каталогу_с_сущностями'
Замените "путь_к_каталогу_с_сущностями" на путь к каталогу, в котором находятся ваши сущности. Например, если ваши сущности находятся в "src/CustomBundle/Entity", то путь будет "CustomBundleMigrations".
4. Создайте директорию для миграций. Создайте каталог, который вы указали в "migrations.yaml" для "migrations_paths". Например, если ваш путь "CustomBundleMigrations", то создайте каталог "CustomBundleMigrations" в корневой директории вашего проекта.
5. Теперь вы можете сгенерировать миграцию. Выполните следующую команду в консоли:
php bin/console doctrine:migrations:diff
Эта команда сравнивает текущее состояние базы данных с вашими сущностями и создает новую миграцию в указанном каталоге миграций.
6. Выполните миграцию. Выполните следующую команду в консоли:
php bin/console doctrine:migrations:migrate
Эта команда применяет все непримененные миграции к базе данных.
Теперь у вас должны быть сгенерированы и применены миграции для ваших сущностей, находящихся вне "src/Entity".