Возникла проблема при переносе конфигураций с тестовой БД на боевую.
При сборке пакета обновления в качестве источника указал свою текущую(тестовую) конфигурацию, в качестве получателя - БД, поднятую с последнего бэкапа боевой базы.
После этого попытался применить полученный пакет на боевом сервере - никаких изменений. Проверял через SQLManagementStudio - в таблицах не создались добавленные в ходе доработки поля. Смотрел исходный код скриптов - также никаких изменений.
Затем попробовал применить пакет локально, т.е. накатить его на локальную эталонную БД (поднятую с последнего боевого бэкапа, т.е. по сути, аналогично предыдущей попытке). Также никаких изменений.
PS:1. Кнопку "Слияние физической структуры таблиц" при накате обновления - нажимал.
2. При накате обновления на боевом сервере - в списке изменений отображались конфликты. Обновил с опцией "автоприменение с приоритетом пакета". При накате обновления на локальную БД - конфликтов не было. Хотя БД, на которые накатывались обновления в обоих случаях - идентичные.
3. После обновления некоторые сервисы в дереве объектов (которое справа) отображаются жирным шрифтом. На первый взгляд - только те сервисы, которые я менял при доработке.
Нравится
Здравствуйте.
Одназначно ответить на Ваш вопрос сложно, но стоит попробовать следующее: 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, хотя несохраннеными помечаются именно те скрипты, которые я менял.