andreyryabin / sprint.migration

Миграции для разработчиков (1С-Битрикс)
http://marketplace.1c-bitrix.ru/solutions/sprint.migration/
MIT License
170 stars 55 forks source link

Миграция пользовательских полей #132

Open AleksandrImedia opened 3 months ago

AleksandrImedia commented 3 months ago

При попытке мигрировать пользовательское поле, типа привязка к элементам хайлоадблоков, возникает ошибка экспорта в том случае, когда на сервере, где устанавливается миграция, у данного поля будет в БД задан ID хайлоада который факту он уже удален. И при получении в методе prepareExportUserTypeEntity (файл /bitrix/modules/sprint.migration/lib/helpers/usertypeentityhelper.php) https://take.ms/gou1q он не сможет получить этот удаленный хайлоад и выдаст ошибку экспорта поля.

В этом случае, возможно имеет смысл, игнорировать тот факт, что для истории при установке миграции, не нужно получать предыщущий хайлоад этого поля, его может и не быть.

andreyryabin commented 3 months ago

Здравствуйте, если я правильно понял, вы 1) удалили справочник 2) пытаетесь обновить пользовательское поле, в котором осталась к нему привязка ?

Возможно вам надо в другом порядке миграции выполнить, сначала удаление привязки, потом удаление справочника

AleksandrImedia commented 2 months ago

Добрый день.

Вы обсолютно правы, справочник исчез другой миграцией, но вот поле было не обновлено. И ваше предложение на 100% верное, спасибо!

Но на мой взгляд, выкидывать исключение по этому поводу чрезмерно. Может как информацию вывести - да. Как вы считаете?

andreyryabin commented 2 months ago

да, надо поправить этот момент, эта привязка обновится на новое значение, никакого смысла выяснять валидно ли было старое нет