Перенос данных на чистую базу (постановка)

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Перенос таблиц с дополнительной информацией)
Строка 43: Строка 43:
  
 
[[Category:Постановка]]
 
[[Category:Постановка]]
 +
 +
__NOTOC__

Версия 17:10, 8 февраля 2011

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

  1. Создаем чистую БД, только метаданные от исходной БД, используя ключ -m утилиты gbak. Присваиваем ей новый DBID.
  2. Запоминаем состояние и отключаем все триггеры.
  3. Удаляем все чеки.
  4. Удаляем все ограничения (ПК, ФК).
  5. Удаляем все индексы.
  6. Переносим данные.
  7. Восстанавливаем индексы и ограничения, подключаем тригеры и чеки.

Перенос данных

Перед началом процесса пользователь может выбрать для каждого типа документов или справочников как переносить данные:

  1. Полностью все записи.
  2. Начиная с определенной даты (для документов -- это дата документа, для справочников дата последнего изменения или создания объекта).

В процессе переноса потребуются структуры:

  1. Массив перенесенных идентификаторов.
  2. Cписок массивов требуемых идентификаторов. Каждый массив характеризуется именем таблицы.

Последовательность действий при переносе данных:

  1. Выводим суммарные значения и помещаем их в новую БД.
  2. Переносим документы.
  3. Переносим справочники.
  4. Трансформируем и переносим складское движение.

В процессе переноса, для каждой перенесенной записи:

  1. Запоминаем ИД в массиве перенесенных идентификаторов.
  2. Удаляем ИД из списка требуемых ИД для данной таблицы, если он там присутствует.
  3. Для каждой ссылки в записи проверяем не перенесен ли уже соответствующий ИД. Если нет, то помещаем в список требуемых ИД.

По окончании переноса проверяем список требуемых ИД и переносим нужные записи. Повторяем, пока список требуемых ИД не будет пуст.

Перенос множеств

Перенос таблиц, связанных 1-к-1

Перенос таблиц с дополнительной информацией

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты