Вас куда-то не туда занесло. Что происходит мне совершенно понятно - доктрина видит какой-то класс, и по-умолчанию считает его новым. Чтобы она поняла, что такие данные уже есть - нужно получить объект из базы:
tukreb, нет проблемы взять все и переписать как надо, чтобы работало) Вопрос был в том, нет ли в симфони/доктрине какой-то особой настройки, которую вот просто добавляешь, и она понимает, что вот это класс уже созданной сущности, и её не нужно создавать. Но нужно привязать к текущей.
Но возникает вопрос как это добавить (с минимальными правками), когда всё в проекте максимально абстрактно и универсально json->denormalize->persist->flush
Склоняюсь к написанию своего нормалайзера, и в denormalize() сделать всю нужную логику
tukreb,
> вы просто получаете json, прогоняете через serializer, а потом просто сохраняете
да, так проект написан, и мне это не нравится также, как и вам. Я привык к 1) нормально валидации запроса 2) создание dto от запроса 3) потом от dto ручками создается entity
> да и ещё всегда в кучу транзакций вместо одной единой
если на один запрос делается один flush - то какие проблемы?
Все, разобрался. Причина была в том, что в настройках (Settings->CI/CD->General pipelines) был заменен стандартный файл .gitlab-ci.yml на файл из вообще другого проекта.
Alexey Dmitriev,
> вы же видите, что у вас где-то инклюдится какой-то общий пайп? В ошибке явным образом указано.
Ошибка:
Included file police-registry-ci.yml@common/sf-pr-ci does not have YAML extension!
Файла police-registry-ci.yml в проекте нет, в gitignore его тоже нет. Не знаю откуда этот файл берется в ошибке.
Тоже самое по common/sf-pr-ci - директории common нет в проекте, в gitignore также нет
Alexey Dmitriev, с веб-интерфейсом никогда не работал (в версиях GitLab на которых я раньше работал пункта меню CI/CD ->Editor просто не было), решил ради интереса добавить туда простой пайплайн, но он не работает из-за ошибки "Included file test-ci.yml@common/sf-pr-ci does not have YAML extension!"
Вообще есть способы как-то блокировать изменения в .gitlab-ci.yml? Если да - подскажите в какую сторону копать.
Alexey Dmitriev, не понял момента с "для которой запускаете." пайплайн запускается автоматически, если в проекте есть .gitlab-ci.yml, и запускает с теми изменениями, что есть. В коммите GitLab видит мои изменения.
Но когда вы работаете в команде 15 человек, и большинство на качество кода забивает - автомиграции уже не работают. Точнее они работают, но если их выполнить - будут ошибки, а чтобы исправить - нужно потратить значительное количество времени на техдолг, который руководству не важен, им главное чтобы бизнес фичи быстрее пилились.
Вас куда-то не туда занесло. Что происходит мне совершенно понятно - доктрина видит какой-то класс, и по-умолчанию считает его новым. Чтобы она поняла, что такие данные уже есть - нужно получить объект из базы:
И все она сразу понимает.