Как сравнить две схемы и сгенерировать скрипт, преобразующий одну схему в другую?

Я пытаюсь добавить механизм отката для своего программного обеспечения, связанного с базой данных. У меня есть две схемы oracle db11g, которые отличаются по структуре и данным. Существуют ли какие-либо инструменты, которые сравнивают обновленную схему со старой схемой и генерируют сценарий, который откатывает обновленную схему до исходной?

Если да, включает ли он сами данные? или просто структура БД?


person Michael    schedule 23.01.2012    source источник
comment
Если вы хотите откатить более новую, почему бы просто не удалить базу данных полностью и не скопировать резервную копию другой вашей базы данных? Это будет быстрее, чем сканировать каждую таблицу на наличие изменений и копировать только изменения.   -  person Ben    schedule 23.01.2012
comment
Встраивайте прямо в Oracle: docs.oracle.com/cd /E11882_01/appdev.112/e25788/   -  person a_horse_with_no_name    schedule 23.01.2012
comment
@Ben Восстановление производственной базы данных из резервной копии — долгий процесс. вместо этого я хочу откатить только те изменения, которые я сделал, мне кажется, это займет меньше времени, нет?   -  person Michael    schedule 25.01.2012
comment
@Майкл; это сколько 6 часов, чтобы восстановить БД из резервной копии, сколько времени потребуется для полного сканирования всех ваших таблиц, затем выполнить все необходимые DML и DDL, а затем перекомпилировать ваш код?   -  person Ben    schedule 25.01.2012
comment
@ Бен, я не совсем понял свой вопрос. Каждый раз, когда я выпускаю обновление, мне также нужно выпускать откат. вместо того, чтобы писать обратные сценарии sql для сценариев обновления, я хотел один раз динамически создать сценарий, который сравнивает схемы, а затем выпускает его как откат. даже если это займет время, мне придется создать его один раз и запустить позже...   -  person Michael    schedule 26.01.2012
comment
@a_horse_with_no_name также позволяет сравнивать данные?   -  person Michael    schedule 02.02.2012
comment
@michael: см. dbms_comparison: docs.oracle.com/ cd/E11882_01/appdev.112/e25788/   -  person a_horse_with_no_name    schedule 02.02.2012
comment
@a_horse_with_no_name Я не мог понять оттуда, я попробую, чтобы быть уверенным. Благодарю.   -  person Michael    schedule 02.02.2012