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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
Строка 1: Строка 1:
 
В данной постановке рассматривается альтернативное решение проблемы [[Полное закрытие периода (постановка)|полного закрытия периода]]. Вместо удаления данных за пределами активного периода предлагается перенести актуальную информацию в чистую БД согласно следующего алгоритма:
 
В данной постановке рассматривается альтернативное решение проблемы [[Полное закрытие периода (постановка)|полного закрытия периода]]. Вместо удаления данных за пределами активного периода предлагается перенести актуальную информацию в чистую БД согласно следующего алгоритма:
  
# Создаем чистую БД, только метаданные от исходной БД.
+
# Создаем чистую БД, только метаданные от исходной БД. Присваиваем ей новый DBID.
 
# Отключаем все триггеры.
 
# Отключаем все триггеры.
 
# Удаляем все ограничения (ПК, ФК).
 
# Удаляем все ограничения (ПК, ФК).
 
# Удаляем все индексы.
 
# Удаляем все индексы.
# Выводим суммарные значения и помещаем их в БД.
+
# Переносим данные (см. комментарий ниже):
# Переносим документы начиная с определенной даты.
+
## Выводим суммарные значения и помещаем их в БД.
# Переносим все справочники согласно заданным критериям: полностью, только используемые записи, только используемые и записи созданные\измененные после определенной даты.
+
## Переносим документы начиная с определенной даты.
# Трансформируем и переносим складское движение.
+
## Переносим все справочники согласно заданным критериям: полностью, только используемые записи, только используемые и записи созданные\измененные после определенной даты.
 +
## Трансформируем и переносим складское движение.
 
# Создаем индексы, ограничения и подключаем тригеры.
 
# Создаем индексы, ограничения и подключаем тригеры.
  
 
В процессе переноса, для каждой перенесенной записи:
 
В процессе переноса, для каждой перенесенной записи:
  
# Запоминаем ИД и удаляем его из списка требуемых ИД  
+
# Запоминаем ИД и удаляем его из списка требуемых ИД, если он там есть
 
# Для каждой ссылки проверяем не перенесен ли уже соответствующий ИД. Если нет, то помещаем в список требуемых ИД вместе с таблицей, куда он ссылается.
 
# Для каждой ссылки проверяем не перенесен ли уже соответствующий ИД. Если нет, то помещаем в список требуемых ИД вместе с таблицей, куда он ссылается.
  

Версия 18:40, 30 сентября 2010

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

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

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

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

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

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

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