Pergunta

Temos um grande conjunto (mais de 2.000) de scripts usados para implantar o código do banco de dados.Alguém sabe se existe uma ferramenta que pode ser usada para criar um único script de implantação em conformidade com a ordem de dependência correta?

Eu entendo que isso pode ser feito usando o SQL Compare do Redgate, mas isso é ótimo se você tiver o SQL Server.De acordo com as informações limitadas na ferramenta Schema Compare for Oracle, ela parece não ter essa funcionalidade.

Foi útil?

Solução

Eu iria com a seguinte ordem (amplamente baseada na ordem em que os objetos são extraídos com um EXPDP):

  • SINÔNIMO
  • TYPE (a coluna da tabela pode depender do tipo definido pelo usuário)
  • DB_LINK
  • SEQUÊNCIA
  • TABELA-TABELA
  • TABLE-GRANT
  • TABLE-INDEX
  • TABLE-CONSTRAINT (você pode querer restrição de PK aplicada por um índice existente)
  • COMENTÁRIOS DA TABELA
  • PACOTE
  • FUNÇÃO
  • PROCEDIMENTO
  • VER
  • TABELA-REF RESTRIÇÕES
  • TABLE-TRIGGER
  • TABLE-INDEX (FUNCTIONAL)
  • VISUALIZAÇÃO MATERIALIZADA
  • REGISTRO DE VISUALIZAÇÃO MATERIALIZADA
  • TRABALHO

Outras dicas

Eu criaria um script para iniciá-los na ordem adequada, dependendo de como eles foram implementados.

  • Tabelas / sequências
  • Visualizações / tipos
    • (geralmente com a opção force para que sejam criados se houver uma ordem de geração problema ou dependência de tipos de "código" ou outras visualizações e tipos)
  • Pacotes / Procedimentos / Funções / Gatilhos
    • (se forem criados fora da ordem de dependência, eles ainda criarão, mas serão inválidos)
  • Restrições de chave estrangeira

Comece rdbms / admin / utlrp para recompilar objetos inválidos quando terminar de recompilar objetos inválidos.

Não tenho certeza se entendi totalmente o seu problema, mas você pode tentar o seguinte:

  1. Execute seus scripts atuais para criar um banco de dados
  2. Crie um esquema em branco
  3. Use a comparação de esquema da Red Gate para comparar seu banco de dados com o esquema em branco
  4. Salve o script (que deve estar em ordem de dependência)

A seguir, uma orientação geral para a ordem de execução dos scripts de instalação para diferentes tipos de objetos de banco de dados:

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)

As especificações de pacote são listadas primeiro porque sempre serão válidas e outros objetos podem se referir a elas.Os corpos dos pacotes devem ser o último tipo de objeto criado porque provavelmente farão referência a outros tipos de objeto.Por causa de problemas de dependência, você é encorajado a colocar funções e procedimentos em pacotes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top