Использование Schema Compare для Oracle для создания сценария развертывания

StackOverflow https://stackoverflow.com/questions/5889260

Вопрос

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

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

Это было полезно?

Решение

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

  • СИНОНИМ
  • ТИП (столбец таблицы может зависеть от типа, определенного пользователем)
  • DB_LINK
  • ПОСЛЕДОВАТЕЛЬНОСТЬ
  • ТАБЛИЦА-ТАБЛИЦА
  • ТАБЛИЦА-ГРАНТ
  • ТАБЛИЦА-ИНДЕКС
  • TABLE-CONSTRAINT (вы можете захотеть, чтобы ограничение PK применялось существующим индексом)
  • ТАБЛИЦА-КОММЕНТАРИИ
  • ПАКЕТ
  • ФУНКЦИЯ
  • ПРОЦЕДУРА
  • ПОСМОТРЕТЬ
  • ОГРАНИЧЕНИЯ, КАСАЮЩИЕСЯ СТОЛА
  • ТАБЛИЦА-ТРИГГЕР
  • ТАБЛИЦА-ИНДЕКС (ФУНКЦИОНАЛЬНАЯ)
  • МАТЕРИАЛИЗОВАННЫЙ ВИД
  • МАТЕРИАЛИЗИРОВАННЫЙ ЖУРНАЛ ПРОСМОТРА
  • РАБОТА

Другие советы

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

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

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

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

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

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

родовое слово

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top