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

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

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

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

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

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

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

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

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

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