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