Постепенная миграция к новой схеме базы данных. ¿Suggestions?

(Этот вопрос о лучшем способе ко временно, и программно ведите новый учет двух баз данных в синхронизации, имея совсем другие схемы, и игнорируя старое - устаревший и больше не необходимый - записи.)

Я работаю над компанией, которая предоставляет телевизионную программную информацию руководствам, газетам и веб-сайтам.

У меня есть старая система, которая имеет несколько ограничений и заменяется новым.

Различные клиенты берут данные в различных форматах (xml, sql, txt, даже готовый к печати PDF) и по-разному (нажатие, вытяните, частичные дампы, простой экспорт, человек помог экспорту - как версия PDF - и т.д.). Некоторый экспорт сгенерирован один раз в месяц, другие несколько раз день.

Проблема состоит в том, что несколько клиентов должны полагаться на данные из старой системы, пока новый полностью не разрабатывается и загружается, и у штата, поддерживающего данные, не может быть обеих баз данных в синхронизации, потому что это потребовало бы, чтобы большая дополнительная работа, но системы коммутации в течение ночи казалась невозможной, учитывая размер проекта.

Мы не хотим делать полный импорт данных от старой базы данных до новой, потому что большая часть из него уже не необходима, и имейте много мусора (т.е., копируйте записи с другим уровнем детализации, старая информация о проветриваниях, в которой мы только нуждаемся как архив).

Мы хотим новые записи, вставленные в обе базы данных и старые, отредактированные, скопированные в новую базу данных также.

Мы собираемся запустить разработку нового системного использования Symfony с Доктриной, и я решил, что мы могли разработать ряд классов "прокси" ORM, которые должны иметь тот же интерфейс, чем простая Доктрина набор ORM классов, но сохранить синхронизацию, идущую между двумя другими наборами классов (те, которые взаимодействуют через интерфейс с новой системой и теми, которые взаимодействуют через интерфейс со старым). В конечном счете старый DB должен быть отброшен наряду с прокси-классами и Доктриной, классы ORM, которые соединяются непосредственно с новым DB, должны занять то место, как будто старая система, никогда не была бы не существовал.

Это - съемка общим планом, и я не абсолютно уверен относительно подхода.
У кого-либо есть опыт с этим видом проекта?
Вы знаете о какой-либо распространенной ошибке в этом подходе или некотором другом решении, которое могло соответствовать этой ситуации?

6
задан Sebastián Grignoli 6 August 2010 в 20:56
поделиться