Обновление MIS3 — различия между версиями

Материал из ИбисоПедии
Перейти к: навигация, поиск
(Обновление метаданных)
(Обновление метаданных)
Строка 11: Строка 11:
 
                     FROM information_schema.tables where table_schema||'.'||table_name=''''audit'''.'''logged_actions_warehouse_pharm'''')
 
                     FROM information_schema.tables where table_schema||'.'||table_name=''''audit'''.'''logged_actions_warehouse_pharm'''')
 
                     -- Вместо ''''audit'''.'''logged_actions_warehouse_pharm'''' необходимо указать имя схемы БД в которой располагается объект
 
                     -- Вместо ''''audit'''.'''logged_actions_warehouse_pharm'''' необходимо указать имя схемы БД в которой располагается объект
                     -- и через точку указать имя обновляемой таблицы
+
                     -- и через точку указать имя проверяемой таблицы
 
                     THEN
 
                     THEN
 
         <<Далее скрипт создающий таблицу в БД. Например: CREATE TABLE audit.logged_actions_warehouse_pharm... >>
 
         <<Далее скрипт создающий таблицу в БД. Например: CREATE TABLE audit.logged_actions_warehouse_pharm... >>

Версия 09:29, 21 января 2016

Обновление метаданных

При создании скриптов обновляющих объекты БД можно использовать проверку на существование обновляемых объектов БД. Для этого достаточно написать небольшой блок кода.

Пример кода, проверяющий наличие таблицы в БД и при её отсутствии создающий её:

DO
$$
BEGIN
   IF NOT EXISTS(SELECT *
                    FROM information_schema.tables where table_schema||'.'||table_name='audit.logged_actions_warehouse_pharm')
                    -- Вместо 'audit.logged_actions_warehouse_pharm' необходимо указать имя схемы БД в которой располагается объект
                    -- и через точку указать имя проверяемой таблицы
                    THEN
       <<Далее скрипт создающий таблицу в БД. Например: CREATE TABLE audit.logged_actions_warehouse_pharm... >>
   END IF ;
END;
$$

Данные в таблицах, которые должны быть одинаковыми на всех БД

  • mm.app_tab - справочник закладок
  • mm.rght - только первые 1000 записей, остальные все одинаковые
  • mm.rsf_ref_column - колонки по реестру счетом
  • audit.table_conf - назначение мест аудита для таблиц

Разрабатываемая система (Нефедов)

Этот раздел устарел!!!

Для выполнения пакетов обновления (подготовленных для удалённого выполнения) без наличия подключения к БД заказчиков можно использовать файл aUpdateIBIS.exe Этот файл облегчит процесс выполнения обновления для удалённых администраторов системы. Поэтому его нужно отправлять на объект вместе с запакованным 7zip или распакованным (в виде папки) архивом.

Когда администратор запустит aUpdateIBIS.exe, появится окно с просьбой - указать местонахождение директории из которой запускается система ИБИС. После того как директория будет указана, этот файл запустит A1IBIS.exe с параметром /runupd="путь к архиву обновления". При этом путь к архиву обновления будет сформирован автоматически.

В архиве (запакованном или распакованном) ОБЯЗАТЕЛЬНО должен находиться файл UPDATE.INI Cодержимое файла UPDATE.INI может быть таким:

[ORDER]
2=russian.lng
1=7za.dll
[PATH]
russian.lng=test
7za.dll=test

В разделе ORDER указывается порядок обновляемых файлов, а в разделе PATH указывается название директории в которую A1IBIS.exe будет выкачивать файл. Наличие названий директорий в разделе PATH - не обязательно.

Исходники aUpdateIBIS.exe лежат тут: trunk/ER3/Source/!Updater

PS. Далее хотел бы добавить возможность, кроме файлов системы добавлять файлы скриптов (для их выполнения).