Здравствуйте, сейчас занимаюсь переписыванием старого desktop-legacy на symfony и столкнулся с небольшой проблемой.
В старом проекте есть справочники, которые хранятся в нескольких таблицах БД в виде
nomer_spravochnika, code, value
. Контроля целостности нет, вся логика обработки и хранения данных размазана между приложением и кодом в БД (тригеры, процедуры).
В новом проекте выношу каждый справочник в отдельную таблицу. Таких справочников уже больше 200, количество записей в них колеблется от нескольких десятков до нескольких тысяч. Я вынес данные справочных таблиц в csv файл, который загружаю на этапе миграций. Для тестирования отдельных модулей предполагается загрузка фикстур в БД с использованием DoctrineFixturesBundle и
zenstruck/foundry. Мне нужно вместе с фейковыми данными для тестов иметь правильные данные для справочников, т.к. есть слой бизнес-логики (те же правила валидации), которая завязана на конкретных значениях в справочных таблицах.
Прошу пару советов, чтобы собрать мозги в кучу, а то уже запутался... Вопросов больше, чем ответов:
- Логичен ли сам факт загрузки данных в таблицы на этапе миграций? Если нет, то что делать с этими данными - переносить загрузку в фикстуры? Тогда как их грузить на проде, ведь тащить на прод DoctrineFixturesBundle не совсем логично?...
- Как при загрузке фикстур для свойств класса (ManyToOne) указать уже имеющиеся в БД данные?
- Может есть вообще иной, более логичный путь...