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