Создание сценариев миграции из унаследованной модели в текущую (в стадии разработки) - PullRequest
0 голосов
/ 24 июня 2010

Изначально модель (включая таблицы, представления, пакеты и т. Д.) Была построена из сценариев DML (созданных TOAD).Сценарии выглядят так:

DROP TABLE TABLESPACE.TABLENAME CASCADE CONSTRAINTS;
CREATE TABLE TABLESPACE.TABLENAME
...

Со временем модель изменилась - я добавил новые столбцы в таблицы, изменил некоторые vews, добавил новые методы в пакеты и т. Д.Что было бы самым простым способом (программное обеспечение, методика) для создания сценариев миграции из старой модели в состояние, в котором я сейчас нахожусь.В качестве сценария миграции мне нужен набор ALTER s и т. Д., Который можно применить к устаревшей модели, чтобы он был обновлен.

Ответы [ 2 ]

1 голос
/ 24 июня 2010

"Со временем модель изменилась - я добавил новые столбцы в таблицы, изменил некоторые vews, добавил новые методы в пакеты и т. Д.

Какой самый простой способ (программное обеспечение, техника) для создания сценариев миграции из старой модели в состояние вещей "

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

Я полагаю, причина, по которой вы задаете этот вопрос, заключается в том, что вы не работали таким образом.Tsk tsk.

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

Если у вас есть модуль DBA для TOAD, вы можете использовать его инструмент Schema Diff для генерации скрипта, который будет применять все необходимые изменения (если у вас нет необходимой лицензии, вы все равно можете использовать утилиту Diff, но вы можетесохранить скрипт как файл).На рынке есть и другие инструменты, которые делают это: большинство из них либо являются платными продуктами сами по себе (SQL Compare), либо требуют дополнительных лицензий (бесплатный SQL Developer от Oracle предлагает эту функцию, но вам необходимо лицензировать пакет управления изменениями, чтобыиспользуйте его).

Если у вас есть время, более дешевым вариантом является создание собственных сценариев с использованием словаря данных для определения изменений.Но это много усилий.

1 голос
/ 24 июня 2010

Когда вы говорите, что вам нужны операторы UPDATE, вы имеете в виду, что вы хотите, чтобы данные обновлялись до того, что есть в вашей новой базе данных?Если вы хотите, чтобы данные точно совпадали, то вы можете сделать это, но если вы хотите, чтобы та же логика применялась к существующей БД, чтобы перенести ее в новую БД, вам потребуется сохранить эти сценарии UPDATE, чтобы иметь возможность выполнятьтот.Например, если вам нужно было увеличить sales_date для всех заказов в вашей системе, поскольку вы где-то обнаружили ошибку в коде, невозможно определить это по простому просмотру базы данных.

Создать одну базу данныхсоответствует другому, Red Gat e имеет несколько хороших инструментов - SQL Compare и SQL Data Compare могут вам помочь.Инструмент сравнения данных позволяет точно сопоставить данные и не очень эффективен для очень больших таблиц.Это хорошо для таких вещей, как справочные таблицы.

Существуют и другие подобные продукты (на ум приходит SQL Examiner).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...