Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 7673 - Не работает обновление конфигурации в Selta 1.1.0   Make a simular bug
Summary: Не работает обновление конфигурации в Selta 1.1.0
Status: CLOSED FIXED
Alias: None
Product: SELTA@Etersoft
Classification: Продукты (Products)
Component: Парсер (show other bugs)
Version: 1.1.0
Hardware: PC All
: P4 major
Target Milestone: версия 1.0.4
Assignee: Калюхович Юрий
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 6158
  Show dependency treegraph
 
In work:
Reported: 2011-09-22 14:27 MSK by Станислав Коробейников
Modified: 2014-09-11 18:46 MSK (History)
2 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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
Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять.