Пару лет назад столкнулся с похожей задачей, сидинг данных через миграции регулярно стрелял в ноги, и нужно было его вынести в отдельный функционал. Так и не понял почему DoctrineFixturesBundle продвигается как тула именно для тестирования, видимо неудачный нейминг оригинальной либы сыграл своё.
В доке к оригинальной либе среди юзкейсов упоминается в том числе и сидинг вне контекста тестов.
Doctrine Data Fixtures
Но, проверять на живом проекте я так и не решился и набросал на коленке свой силдер с нужным мне функционалом из 2-3 классов.
Как при загрузке фикстур для свойств класса (ManyToOne) указать уже имеющиеся в БД данные?
Если используются кодогенирируемые уникальные идентификаторы - можно их прописывать в константы, и использовать при сидинге родительской сущности, а потом её же использовать при сидинге потомков.
Если таких нет - хранить в константах те поля по которым оригинальную сущность получится найти и получить идентификатор.