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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
Строка 2: Строка 2:
  
 
# Создаем чистую БД, только метаданные от исходной БД. Присваиваем ей новый DBID.
 
# Создаем чистую БД, только метаданные от исходной БД. Присваиваем ей новый DBID.
# Отключаем все триггерыи чеки.
+
# Отключаем все триггеры и чеки.
 
# Удаляем все ограничения (ПК, ФК).
 
# Удаляем все ограничения (ПК, ФК).
 
# Удаляем все индексы.
 
# Удаляем все индексы.

Версия 21:57, 2 октября 2010

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

  1. Создаем чистую БД, только метаданные от исходной БД. Присваиваем ей новый DBID.
  2. Отключаем все триггеры и чеки.
  3. Удаляем все ограничения (ПК, ФК).
  4. Удаляем все индексы.
  5. Переносим данные (см. комментарий ниже):
    1. Выводим суммарные значения и помещаем их в БД.
    2. Переносим документы начиная с определенной даты.
    3. Переносим все справочники согласно заданным критериям: полностью, только используемые записи, только используемые и записи созданные\измененные после определенной даты.
    4. Трансформируем и переносим складское движение.
  6. Создаем индексы и ограничения, подключаем тригеры и чеки.

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

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

По окончании переноса проверяем список требуемых ИД и переносим нужные записи (с выполнением п.1 и 2).

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

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