Пропавшие пробелы [13812]

При переносе БД с MSSQL на Postgres, при помощи Утилита для переноса данных ЛЭРС УЧЁТ с SQL Server в БД Postgres столкнулся с тем, что в комментариях, названиях, адресах и пр. пропали пробелы, сам текст при этом нормальный.
Ошибок утилита никаких не выдает. Как заставить утилиту не глотать пробелы?

Спасибо за обращение! Мы поставили в план работ исправление данной ошибки. Как только она будет исправлена, обязательно сообщим в каком обновлении будет доступно исправление.

Попробуйте скачать новую версию утилиты от 21 ноября 2023. На ней проблему воспроизвести не удалось. Обновлённую утилиту выложили на сервер.

Да, проблема с пробелами устранена, но в этой версии почему то не скопировалась таблица MeasurePoint. Объекты есть, точек учета нет.
И еще хотел уточнить, утилита должна переносить архивные данные по водо- и электроснабжению? Что в прошлой версии, что в этой эти данные игнорируются, в config.json исключений на них нет.

Провели еще раз перенос на тестовом стенде. Точки учета и архивные данные по ним, в том числе по водоснабжению и электроэнергии, перенеслись.

Обращаю ваше внимание, что перенос необходимо делать строго по инструкции, в том числе перенос исключительно на созданную после установки пустую БД на Postgres.

Так и делается. Выключаю ЛЭРС, удаляю БД, включаю ЛЭРС, что бы создалась дефалтовая база, выключаю ЛЭРС, запускаю утилиту. А таблиц которые копируются стало на одну меньше, по сравнению с прошлой версией. В логе что показывает утилита таблицы точек и архивных нет.
Может как то влияют настройки в config.json?
Вот мой:

{
	"IgnoreTables": [
		"__EFMigrationsHistory",
		"File",
		"NodeFile",
		"dtproperties",
		"PreparedReport",
		"ReportGeneratingTaskNode",
		"sysdiagrams",

		"GprsControllerSession",
		"SystemLog",
		"PollSessionLog",
		"MeasurePointDeviceErrors",
		"ContingencyLog",
		"DryContactState",
		"EquipmentPollStatistics",
		"PollSession",
		"AccountLog"
	],

	"LimitTables": [

	]
}

Можно ли как то более детальный лог работы утилиты получить?

Более детального протокола в утилите нет.

Сказать сложно влияют ли указанные настройки. У таблиц существуют зависимости между сосбой и исключение одной таблицы может повлечь проблемы с переносом зависимой от нее.
Мы переносили данные с настройками по умолчанию. Попробуйте произвести перенос с настройками утилиты по умолчанию.

Попробовал с настройками по умолчанию, все равно нет точек учета и архивных данных. В профайлере видно, что он запрашивает информацию о таблице:

exec sp_executesql N'EXEC sp_fkeys @pktable_name, @pktable_owner',N'@pktable_name nvarchar(12),@pktable_owner nvarchar(3)',@pktable_name=N'MeasurePoint',@pktable_owner=N'dbo'

Таблицы по воде и ээ так же запрашиваются. Но дальше в список таблиц которые необходимо скопировать они не попадают.
Если сравнить зависимости, то у MeasurePoint в MSSQL есть зависимость к таблице SystemType, но в Postgres ее нет, утилита же ее пытается копировать. Все остальные зависимости копируются нормально.

image
Утилиту похоже не смущает, что она отправляет данные в никуда.

Пришлите, пожалуйста, резервную копию вашей БД.

Проблема здесь не в SystemType, а в циклической зависимости MeasurePoint → PersonalAccount → NodeSection → MeasurePoint, которая была добавлена в версии 3.52. Из-за этого топологическая сортировка не обрабатывает таблицу MeasurePoint и все таблицы с данными, которые от неё зависят.

Добавили эту зависимость в список игнорируемых и выложили новую версию утилиты. Загрузите её и проверьте импорт.

Попутно мы нашли ещё одну несостыковку в базе Postgres, которая помешает импортировать единицы измерения, что в дальнейшем может привести к проблемам с привязкой ячеек. Чтобы её исправить, перед импортом выполните в базе postgres следующие инструкции

DROP INDEX public."IDX_Unit_Title";
CREATE UNIQUE INDEX "IDX_Unit_Title" ON public."Unit" ("Unit_MeasuredParameterID", "Unit_Title");

Утилита теперь увидела на приблизительно 60 таблиц больше. Копирование архивов это на долго. Думаю тему можно закрыть, если “всплывут” еще какие то проблемы, создам новую тему. Спасибо за помощь.