Перенос доработок с тестового сервера на боевой

Возникла проблема при переносе конфигураций с тестовой БД на боевую.

При сборке пакета обновления в качестве источника указал свою текущую(тестовую) конфигурацию, в качестве получателя - БД, поднятую с последнего бэкапа боевой базы.
После этого попытался применить полученный пакет на боевом сервере - никаких изменений. Проверял через SQLManagementStudio - в таблицах не создались добавленные в ходе доработки поля. Смотрел исходный код скриптов - также никаких изменений.
Затем попробовал применить пакет локально, т.е. накатить его на локальную эталонную БД (поднятую с последнего боевого бэкапа, т.е. по сути, аналогично предыдущей попытке). Также никаких изменений.

PS:1. Кнопку "Слияние физической структуры таблиц" при накате обновления - нажимал.
2. При накате обновления на боевом сервере - в списке изменений отображались конфликты. Обновил с опцией "автоприменение с приоритетом пакета". При накате обновления на локальную БД - конфликтов не было. Хотя БД, на которые накатывались обновления в обоих случаях - идентичные.
3. После обновления некоторые сервисы в дереве объектов (которое справа) отображаются жирным шрифтом. На первый взгляд - только те сервисы, которые я менял при доработке.

Нравится

5 комментариев

Здравствуйте.
Одназначно ответить на Ваш вопрос сложно, но стоит попробовать следующее: 1. Отключить кэширование в обеих базах (в поле "UseCache" таблицы "tbl_DatabaseInfo" установить значение "0"). 2. Перед выгрузкой пакета и перед загрузкой очистить содержимое папки "Cache" (находится по пути %appdata%). 3. Как вариант, можно попробовать выгрузить сервисы в ручном режиме, потом загрузить их (сохранить в файл..., загрузить из файла), после этого найти в конфигурации, в которую загружали сервисы, сервис "scr_ResaveNables" и запустить его на выполнение (F9). Отследить сервисы, которые изменялись, можно сделав выборку и отсортировав по дате изменения записи: select * from tbl_Services order by desk.
Terrasoft Support Team.

"Котенко Александр" написал:найти в конфигурации, в которую загружали сервисы, сервис "scr_ResaveNables" и запустить его на выполнение (F9)

Александр, а можете выложить этот сервис. В моей конфигурации (3.3.1) его почему-то нету.

Здравствуйте.
Я ошибся в одной букве. Сервис называется "scr_ResaveTables". Я проверил - такой сервис есть в конфигурации 3.3.1.
Terrasoft Support Team.

Здравствуйте.
На всякий случай высылаю этот сервис.
Terrasoft Support Team.

Здравствуйте.
Проблему с обновлениями решил, использованием утилиты TSMergeServices. Выгружаю все сервисы с девелоперской машины, и накатываю их на продуктивном сервере. После импорта на продуктивном, вызываю скрипт scr_ResaveTables, правда немного подправленный (см. закомменченные строки):

//-----------------------------------------------------------------------------
// scr_ResaveTables
//-----------------------------------------------------------------------------
 
function Main() {
	ResaveTables();
} 
 
function ResaveTables() {
	Log.Write(1, 'Start.');
	var Service;
	var SelectQuery = Services.GetNewItemByUSI('sq_Service');
	//ApplySelectQueryFilter(SelectQuery, 'ServiceTypeCode', 'Table', true);
	var Dataset = SelectQuery.Open();
	var i = 0;
	var Code;
	Dataset.GotoFirst();
	while (!Dataset.IsEOF) { 
		Code = Dataset.ValAsStr('Code'); 
		i++;               		
		try {
			Service = Services.GetSingleItemByUSI(Code);
			Services.SaveItem(Service, 1);
			//Log.Write(1, i + '. Service ' + Code + ' saved.');
		} catch(e) {
			//Log.Write(2, i + '. Error to save service: ' + Code +
			//	' Original message: ' + e.message);
		} 
		System.ProcessMessages();
		Dataset.GotoNext();
	}
	Dataset.Close();
	Log.Write(1, 'Finish.');
}

1) Закомментировал фильтр по типам объектов, чтобы пересохранялись все объекты, а не только таблицы.
2) Закомментировал вывод в лог сообщений о сохранении объектов, потому что у меня скрипт зависал где-то после 2-й тысячи записей в логе сообщений (почему-то всегда именно на сохранении tbl_DictionarySettings), причем клиент зависал намертво. М.б. где-то идет переполнение буфера или что-то в этом роде.
Перенести обновления через процедуру формирования пакета я так и не смог. В сформированном пакете есть изменные скрипты, я проверял в сформированных xml-ках. Но после наката на боевой сервер - все объекты остаются без изменений, даже после вызова scr_ResaveTables, хотя несохраннеными помечаются именно те скрипты, которые я менял.

Показать все комментарии