Bug 7673

Summary: Не работает обновление конфигурации в Selta 1.1.0
Product: SELTA@Etersoft Reporter: Станислав Коробейников <stas>
Component: ПарсерAssignee: Калюхович Юрий <goga>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P4 CC: goga, lav
Version: 1.1.0   
Target Milestone: версия 1.0.4   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 6158    

Description Станислав Коробейников 2011-09-22 14:27:50 MSK
Не работает обновление конфигурации в Selta 1.1.0. 
В основном это связано с именами индексов и ограничений.
Comment 1 Станислав Коробейников 2011-09-22 15:39:08 MSK
Бутылка selta/bug7673
Там есть архив 1с-ных файлов и дамп базы.
База находится на pgsql называется bug7673
Обновления в каталоге update. Надо запустить базу в конфигураторе, и там Конфигурация->Загрузить измененную конфигурацию, выбрать md-шник из каталога обновления.
Comment 2 Станислав Коробейников 2011-09-22 16:23:25 MSK
Нужно помнить, что люди уже могли поставить 1.1.0. Поэтому лучше не менять 1.1.0, а написать набор команд, которые исправят ситуацию.
Comment 3 Калюхович Юрий 2011-09-22 18:19:40 MSK
первое что получил:
"выбранный файл конфигурации не является потомком данного файла", но это ладно.

собственно ошибочный запрос:
alter table "_1sconst" drop constraint "pk__1sconst_new__1sconst";
delete from pg_indexes_name where relname = 'pk__1sconst_new"

кажется, при обновлении конфигурации, создается таблица _1sconst_new, с ней индексы, затем удаление старой _1sconst и переименование новой с _1sconst_new в _1sconst. только при этом имена индексов остаются прежними.

надо попробовать удалить либо переименовать индексы, имена которых сохранены в pg_indexes_name. ну и подтвердить, что таблица переименовывается...
Comment 4 Калюхович Юрий 2011-09-23 11:26:23 MSK
выполняются запросы:
select obj_rename('_1sconst_new', '_1sconst')
и
select obj_rename('pk__1sconst_new', 'pk__1sconst')

в первом случае имя таблицы переименовывается, а запись в pg_indexes_name нет;
во втором случае ничего не переименовывается - как сам индекс, так и запись в pg_indexes_name осталась старой.
Comment 5 Калюхович Юрий 2011-09-23 12:52:17 MSK
исправил функцию obj_rename(), коммичу в 110.
делаю скрипт для восстановления базы.
Comment 6 Калюхович Юрий 2011-09-23 14:02:23 MSK
(В ответ на comment #5)
> исправил функцию obj_rename(), коммичу в 110.
> делаю скрипт для восстановления базы.

написал, проверяю. пока 1С не ругается, пересчитывает ссылки...
Comment 7 Калюхович Юрий 2011-09-23 14:21:45 MSK
(В ответ на comment #6)
> написал, проверяю. пока 1С не ругается, пересчитывает ссылки...

после поиска ссылок и пересчетов 1С запустился и работает. собираю selta-1.1.0-eter4 и публикую скрипт для исправления
Comment 8 Калюхович Юрий 2011-09-23 14:50:42 MSK
выложил в каталог сельты на ftp в accessoryfiles/repairdb_on_update_conf1c.sql
собрал и выложил сборку selta-1.1.0-eter4.msi
Comment 9 Станислав Коробейников 2011-09-29 13:19:18 MSK
Нужно не забыть добавить этот скрипт в update 1.1.1
Comment 10 Vitaly Lipatov 2014-09-11 18:46:25 MSK
Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять.