Нетиповая конфигурация.
Платформа 8.2.17.169.
Часто пользовались динамическим обновлением.
Перешли на платформу 8.3.5.1068.
Проблемы:
- «Сравнить, объединить с конфигурацией из файла», «Сравнить конфигурации» платформа не видит отличий, либо видит, но не все.
- При объединении конфигураций объекты метаданных откатывались до версий, которые были несколько обновлений назад.
Поиск готовых решений проблемы:
http://forum.infostart.ru/forum26/topic72852/
http://www.forum.mista.ru/topic.php?id=408471
http://www.forum.mista.ru/topic.php?id=629968
Поиск источника проблемы:
После тестовых динамических обновлений и просмотра технологического журнала нашел таблицы в которые система делает записи с признаком динамического обновления.
Таблица Config.
Система оставила старую версию обновляемого модуля и добавила новую версию с признаком динамического обновления (dynupdate в наименовании).
Таблица Params.
Каждая запись таблицы продублировалась с признаком динамического обновления.
После удаления записей из таблиц Config и Params, которые система сделала при динамическом обновлении, произошел откат сделанных обновлений.
Сделал копию проблемной рабочей базы и почистил таблицы Config и Params от лишних записей.
После чистки таблиц механизмы сравнения/объединения/загрузки конфигурации стали работать корректно и указанных проблем больше не возникало.
Данную процедуру провел на 22 базах.
Решение:
1. Создать копии таблиц Config, Params для случая если что-то пойдет не так.
USE [<имя_базы_данных>]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[<Имя_таблицы>Copy]
(
[FileName] [nvarchar](128) NOT NULL,
[Creation] [datetime] NOT NULL,
[Modified] [datetime] NOT NULL,
[Attributes] [smallint] NOT NULL,
[DataSize] [int] NOT NULL,
[BinaryData] [image] NOT NULL,
PRIMARY KEY CLUSTERED
(
[FileName] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
INSERT INTO [<Имя_таблицы>Copy]
SELECT * FROM <Имя_таблицы>
GO
2. Удалить записи, которые система создает при динамическом обновлении.
DELETE
FROM Config
WHERE
FileName like '%dynupdate%'
;
DELETE
FROM Config
WHERE
FileName like 'DynamicallyUpdated'
;
DELETE
FROM Params
WHERE
FileName like '%dynupdate%'
;
DELETE
FROM Params
WHERE
FileName like 'DynamicallyUpdated'
3. Обновить конфигурацию файлом с последними изменениями т.к. после чистки произойдет откат модулей, которые обновлялись динамически.