То, что вы здесь описываете, заставляет меня чувствовать себя в середине кошмара! Я думаю, что вы должны начать с того, чтобы всем было ясно, что невозможно (или, по крайней мере, крайне дорого) думать о том, чтобы позволить пользователям обновлять все данные через 2 разных приложения с 2 разными базами данных в течение всего процесса перехода. ! Я даже не говорю о задержке в 2 секунды ...
По моему мнению, основная стратегия должна заключаться в постепенном переключении прав и возможностей обновления данных с устаревшего на новое приложение. Пользователи смогут видеть данные с обеих сторон, но смогут обновлять их только через одно из приложений.
(кстати, этот метод также заставит пользователей постепенно переключаться на новую версию, избегая ожидаемой и раздражающей проблемы сопротивления, уже выявленной @ HLGEM )
Как только это правило будет четко принято, вы можете выполнить следующие шаги.
- Установите все процедуры, позволяющие переносить данные из устаревшей базы данных в новую базу данных. Я думаю, вам нужно будет запустить их несколько раз в ближайшие месяцы ...
- Установить все процедуры, позволяющие передавать данные другим способом (обратная передача данных)
- Здесь вы должны были определить однородные группы таблиц, которые можно перемещать вместе. Объедините предыдущий код так, чтобы вы получили для каждой из этих групп процедуру «передачи данных» и процедуру «обратной передачи».
Тогда для каждой из этих групп
- Установите ограничения на обновление с помощью кода или на уровне базы данных
- Запустите процедуру «передачи данных»
- Организуйте свою процедуру "обратного перевода" в качестве триггера в новой базе данных
Полагаю, первым типом данных, которые вы сможете передавать, будут списки, которые не содержат внешних ключей.
Работая таким образом, вы постепенно переключитесь с ситуации, в которой у вас есть
- устаревшее приложение для чтения / записи + только для чтения
новое приложение
до
- устаревшее приложение только для чтения + чтение / запись
новое приложение.