Процесс OUT миграции
Out миграция принимает объект
KafkaBoi
И при помощи boId
достается companyCode
.
Out таблицы создаются в отдельной схеме в базе.
Название схемы - out_companyCode_{KafkaTopic.OUT_MIGRATION_VERSION}_{env.MYBPM_OUT_MIGRATION_VERSION}
При первом разе идет проверка существует ли схема для out таблиц.
- Если их нет, то система создает out таблицы и запоминает их структуру.
- Если они есть, то мы берем структуру таблиц не создавая таблицы.
Дальше по boiId
мы достаем
BoiDto
И при помощи структуры out таблиц делаем insert on conflict
в нужные таблицы.
Название таблиц - boCode
. Название колонок - fieldCode
Если мы имеем в БО поле типа БО или СО, то создается таблица которая их связывает.
Пример: 1) Course имеет поле Teacher(fieldType=BO). В таком случае для Course будет таблица Course и _Course_Teacher_
2) Contract имеет поле Borrower(fieldType=CO). Borrower здесь поле, которое хранит 3 разных БО. Здесь будет таблица Contract и _Contract_Borrower_. Из-за того, что Contract_Borrower имеет тип СО, он хранит id-шки 3 разных таблиц.
ВАЖНО! Для того, чтоб добавить новые поля или БО-шки для out миграции необходима менять:
KafkaTopic.OUT_MIGRATION_VERSION (обязательно инкремент)
Или более предпочтительный вариант:
В environment-е MYBPM_OUT_MIGRATION_VERSION (обязательно инкремент)