![]() |
![]() |
![]() |
|
Как произвести обновление с помощю промежуточных обновлении | ☑ | ||
---|---|---|---|---|
0
CHART
16.10.12
✎
12:31
|
Пример Есть верция 1.0.1.0. Надо в базе изменить тип реквизита, не потеряв данные. Для этого надо создать версию 1.0.1.1, с новым реквизитом нового типа, копировать данные на новый реквизит. Создать версию 1.0.1.2, где переименуем реквизит.
Подскажите, пожалуйста, как это реализовать с помощэ комплекта поставки, или дайте ссылку на литературу. Заранее спасибо |
|||
1
Cube
16.10.12
✎
12:36
|
(0) В типовых так:
Допустим, что в релизе 1.0.1.0 есть реквизит "Траляля" тип - строка. Нужно его сделать справочником. Погнали. Релиз 1.0.1.1. Реквизит "Траляля" переименовываем в "УдалитьТраляля" тип не меняем. Добавляем реквизит "Траляля" тип - справочник. В обработке обновления добавляем процедуру, которая переносит данные с реквизита "УдалитьТраляля" в реквизит "Траляля". Релиз 1.0.1.2. Не трогаем реквизиты. Релиз 1.0.1.3. Не трогаем реквизиты. ... Релиз 1.0.2.0. Удаляем реквизит "УдалитьТраляля". |
|||
2
CHART
16.10.12
✎
12:55
|
А можно это все делать в одном комплекте поставки: т.е. обновить от 1.0.1.0 до 1.0.2.0 одним шагом ,а внутри это все сделалось автоматически. Спасибо за ответ
|
|||
3
Cube
16.10.12
✎
13:00
|
(2) Ни в коем случае. Ведь твои клиенты не обязательно будут обновляться с 1.0.1.0 до 1.0.1.1. Кто-то обновится сразу до 1.0.1.2, а кто-то может и десять релизов перепрыгнуть... Так вот, нужно заложить место для маневра, а то тухлые помидоры полетят...
|
|||
4
CHART
16.10.12
✎
13:07
|
т.е невозможно обновить от 1.0.1.0 до 1.0.2.0, но в то время по порядку база обновлялась сперва 1.1, потом 1.2, 1.3 и наконец 2.0. Т.е сделать обновление с помощю промежуточных обновлениии. Надо чтоб клиент не мог обновлятся версиями 1.1, 1.2, 1.3, а сразу 2.0. Большое спасибо за ответы.
|
|||
5
Cube
16.10.12
✎
13:11
|
(4) Я ничего не понял))
Если брать мой пример из (1), то при обновлении с 1.0.1.0 до 1.0.2.0 (пропустив 9 релизов) информация из реквизита "Траляля" будет просто потеряна и будут ошибки при обновлении. Но если обновлять 1.0.1.0 до 1.0.1.9 (пропустив 8 релизов), а потом 1.0.1.9 до 1.0.2.0, то всё будет хорошо - ничего не потеряется и ошибок не будет. |
|||
6
Aprobator
16.10.12
✎
13:13
|
.. изменить тип реквизита не потеряв данные... уже хорошо.
|
|||
7
Cube
16.10.12
✎
13:16
|
(6) А что тебя смущает?
|
|||
8
CHART
16.10.12
✎
13:19
|
Надо чтоб обновлялся от 1.0 до 2.0 а все промежуточные обновления обработавались в этом же обновлениии, т.е. использовать промежуточные обновления.
|
|||
9
Aprobator
16.10.12
✎
13:25
|
(7) необходимость данного действа и сама постановка.
|
|||
10
Cube
16.10.12
✎
13:26
|
(8) Это всё пропишешь в обработке обновления. Тут самое главное поймать момент, когда реквизит "УдалитьТраляля" из поставки удалять насовсем, ведь при обновлении сначала добавляются/удаляются реквизиты, а потом уже запускается обработка обновления...
Ну вот смотри, обновляем 1.0.1.0 до 1.0.2.0. В 1.0.1.0 есть реквизит "Траляля" тип строка. В 1.0.2.0 такого реквизита нет. Есть реквизит с таким же наименованием, но с другим внутренним идентификатором и типом справочник... При обновлении удаляется реквизит "Траляля" тип строка и данные, которые в нем хранились. И добавляется реквизит "Траляля" тип справочник, в котором данных вообще нет - он же новый. Запускаем режим "Предприятие". Запускается обработка обновления, которая должна перенести данные с реквизита "УдалитьТраляля" в реквизит "Траляля"... И... Обработка выдает ошибку, ведь реквизита "УдалитьТраляля" нету... Теперь понятно? |
|||
11
CHART
16.10.12
✎
13:28
|
Большое спасибо!
|
|||
12
Cube
16.10.12
✎
13:28
|
(9) Со временем поймешь) Даже, если нетленку писать не будешь. Ведь в типовых конфах это очень распространено...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |