Использование Schema Compare для Oracle для создания сценария развертывания - PullRequest
4 голосов
/ 05 мая 2011

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

Я понимаю, что это можно сделать с помощью SQL Compare в Redgate, однако это здорово, если у вас есть SQLСервер.Судя по ограниченной информации об инструменте сравнения схем для Oracle, эта функциональность, по-видимому, отсутствует.

Ответы [ 4 ]

3 голосов
/ 05 мая 2011

Я бы пошел в следующем порядке (в основном в зависимости от порядка извлечения объектов с помощью EXPDP):

  • SYNONYM
  • TYPE (столбец таблицы может зависеть от пользователяопределенный тип)
  • DB_LINK
  • SEQUENCE
  • TABLE-TABLE
  • TABLE-GRANT
  • TABLE-INDEX
  • TABLE-CONSTRAINT (может потребоваться ограничение PK с помощью существующего индекса)
  • TABLE-COMMENTS
  • PACKAGE
  • FUNCTION
  • PROCEDURE
  • ПРОСМОТР
  • ОГРАНИЧЕНИЯ НА СТОЛБЕ
  • ТАБЛИЦА ТРИГГЕРОВ
  • ИНДЕКС ТАБЛИЦЫ (ФУНКЦИОНАЛЬНЫЙ)
  • МАТЕРИАЛИЗИРОВАННЫЙ ВИД
  • МАТЕРИАЛИЗИРОВАННЫЙ ВИД
  • JOB
2 голосов
/ 05 мая 2011

Я бы создал скрипт для запуска ваших скриптов в правильном порядке, в зависимости от того, как они реализованы.

  • Таблицы / Последовательности
  • Просмотров / Типы
    • (как правило, с опцией force, поэтому они создаются при наличии порядка генерации проблема или зависимость от типов «кода» или других представлений и типов)
  • Пакеты / Процедуры / Функции / Триггеры
    • (если они созданы вне порядка зависимости, они все равно будут созданы, но будут недействительными)
  • Ограничения внешнего ключа

Начните с rdbms / admin / utlrp, чтобы перекомпилировать недопустимые объекты, когда вы закончите перекомпилировать недопустимые объекты.

1 голос
/ 05 мая 2011

Я не уверен, что полностью понял вашу проблему, но вы можете попробовать следующее:

  1. Запустите ваши текущие сценарии для создания базы данных
  2. Создать пустую схему
  3. Используйте сравнение схем Red Gate для сравнения вашей базы данных с пустой схемой
  4. Сохранить скрипт (который должен быть в порядке зависимости)
0 голосов
/ 16 октября 2013

Ниже приведено общее руководство по порядку запуска сценариев установки для различных типов объектов базы данных:

Package specifications

Tables (with constraints and indexes) in proper order

Sequences (because they are most often used by triggers)

Triggers

Synonyms

Views (because they may reference functions, procedures, or synonyms)

Package bodies

Data (optionally disabling all constraints before loading the data and re-enabling them afterwards)

Спецификации пакетов указаны первыми, потому что они всегда будут действительными, и другие объекты могут ссылаться на них. Тела пакета должны быть последним созданным типом объекта, поскольку они, вероятно, будут ссылаться на другие типы объектов. Из-за проблем с зависимостями вам рекомендуется помещать функции и процедуры в пакеты.

...