Как сгенерировать миграции по сущности вне src/Entity?

В 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".