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/bug7673 Там есть архив 1с-ных файлов и дамп базы. База находится на pgsql называется bug7673 Обновления в каталоге update. Надо запустить базу в конфигураторе, и там Конфигурация->Загрузить измененную конфигурацию, выбрать md-шник из каталога обновления. Нужно помнить, что люди уже могли поставить 1.1.0. Поэтому лучше не менять 1.1.0, а написать набор команд, которые исправят ситуацию. первое что получил: "выбранный файл конфигурации не является потомком данного файла", но это ладно. собственно ошибочный запрос: 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. ну и подтвердить, что таблица переименовывается... выполняются запросы: select obj_rename('_1sconst_new', '_1sconst') и select obj_rename('pk__1sconst_new', 'pk__1sconst') в первом случае имя таблицы переименовывается, а запись в pg_indexes_name нет; во втором случае ничего не переименовывается - как сам индекс, так и запись в pg_indexes_name осталась старой. исправил функцию obj_rename(), коммичу в 110. делаю скрипт для восстановления базы. (В ответ на comment #5) > исправил функцию obj_rename(), коммичу в 110. > делаю скрипт для восстановления базы. написал, проверяю. пока 1С не ругается, пересчитывает ссылки... (В ответ на comment #6) > написал, проверяю. пока 1С не ругается, пересчитывает ссылки... после поиска ссылок и пересчетов 1С запустился и работает. собираю selta-1.1.0-eter4 и публикую скрипт для исправления выложил в каталог сельты на ftp в accessoryfiles/repairdb_on_update_conf1c.sql собрал и выложил сборку selta-1.1.0-eter4.msi Нужно не забыть добавить этот скрипт в update 1.1.1 Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять. |