Обновление структуры БД#

В случае использования БД в формате «Единая БД значений, экспорт конфигураций» и обновлении ПО на новую версию, структура конфигурации в которой отличается от текущей используемой в БД можно использовать два подхода:

Создание новой БД

Предупреждение

При создании новой БД старая БД удаляется и создается новая. При этом все сохраненные данные в старой БД будут уничтожены!

Процесс создания новой БД описан в таких разделах как:

Изменение структуры существующей БД с сохранением данных

В этом случае все данные текущей БД сохраняются, в структуру БД вносятся изменения для корректировки ее формата для соответствия более новой версии структуры.

Этот процесс называется «миграцией».

Версия формата БД#

Перед выполнением миграции необходимо определить версию структуры формата БД, используемую в настоящий момент.

Для этого необходимо посмотреть содержимое таблицы «struct_cfg» с помощью любого средства работы с выбранной БД.

К примеру, при работе с БД «Firebird» можно использовать утилиту «FlameRobin».

../_images/cfg-struct.png

В этой таблице, максимальное значение поля «ver_id» (если число записей более одной) содержит номер структуры БД используемой в настоящее время.

В этом примере версия БД равна «3».

Миграция БД#

В каталоге установки, в подкаталоге «SQLExport» находятся файлы для инициализации и миграции для всех БД поддерживаемых IngortechSCADA.

Формат имени файла для миграции устроен следующим образом:

БД_MIGRATE-ВЕРСИЯ-ДАТА.sql

Где:

БД:

Название типа БД. В настоящее время доступны следующие типы БД: «Firebird», «MSSQL» и «PG».

ВЕРСИЯ:

Обозначение версии структуры БД, которая получится при применении этого файла. Обозначение версии содержит в себе номер версии структуры БД, которая получится при применении этого файла. Если версия не указана, она равна «1».

ДАТА:

Дата создания файла миграции в формате «ГГГГ-ММ-ДД». Если для одного и того же номера версии существует более одного файла миграции, то их необходимо применять по очереди в порядке возрастания даты.

При выполнении миграции БД миграция осуществляется последовательно от одной версии до другой. Т.е. если текущая версия структуры «1», а Вам необходимо получить версию «3», то необходимо последовательно применить все файлы миграции, которые по номерам расположены между этими версиями.

После осуществления миграции необходимо проконтролировать. что операция прошла успешно. Для этого необходимо посмотреть содержимое таблицы «struct_cfg» и убедиться, то максимальное значение поля «ver_id» в ней соответствует требуемой версии.

Предупреждение

При выполнении миграции необходимо учитывать следующие особенности операции.

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

  2. В случае нарушения порядка применения файлов миграции структура БД может быть нарушена таким образом, что ее использование окажется более невозможным. Для избежания подобной ситуации, перед миграцией, необходимо сохранить резервную копию текущей БД.