Pregunta

Tenemos un gran conjunto (2000+) de scripts que se utilizan para implementar el código de la base de datos.¿Alguien sabe si existe una herramienta que se pueda utilizar para crear un único script de implementación que se ajuste al orden de dependencia correcto?

Entiendo que esto se puede hacer usando SQL Compare de Redgate, sin embargo, eso es genial si tiene SQL Server.De la información limitada en la herramienta de comparación de esquemas para Oracle, no parece tener esta funcionalidad.

¿Fue útil?

Solución

Seguiría el siguiente orden (en general, según el orden en que se extraen los objetos con un EXPDP):

  • SINÓNIMO
  • TIPO (la columna de la tabla puede depender del tipo definido por el usuario)
  • DB_LINK
  • SECUENCIA
  • TABLA-MESA
  • TABLE-GRANT
  • TABLE-INDEX
  • TABLE-CONSTRAINT (es posible que desee que un índice existente aplique una restricción de PK)
  • TABLA-COMENTARIOS
  • PAQUETE
  • FUNCIÓN
  • PROCEDIMIENTO
  • VER
  • RESTRICCIONES DE TABLE-REF
  • ACTIVADOR DE MESA
  • TABLA-INDICE (FUNCIONAL)
  • VISTA MATERIALIZADA
  • REGISTRO DE VISTA MATERIALIZADO
  • TRABAJO

Otros consejos

Crearía una secuencia de comandos para iniciar sus secuencias de comandos en el orden correcto, según cómo estén implementadas.

  • Tablas / Secuencias
  • Vistas / tipos
    • (generalmente con la opción force para que se creen si hay un orden de generación problema o dependencia de tipos de "código" u otras vistas y tipos)
  • Paquetes / Procedimientos / Funciones / Activadores
    • (si se crean fuera del orden de dependencia, se seguirán creando, pero no serán válidos)
  • Restricciones de clave externa

Inicie rdbms / admin / utlrp para recompilar objetos no válidos cuando haya terminado de recompilar objetos no válidos.

No estoy seguro de haber entendido completamente su problema, pero le recomendamos que intente lo siguiente:

  1. Ejecute sus scripts actuales para crear una base de datos
  2. Cree un esquema en blanco
  3. Utilice la comparación de esquemas de Red Gate para comparar su base de datos con el esquema en blanco
  4. Guarde la secuencia de comandos (que debe estar en orden de dependencia)

La siguiente es una guía general para el orden en el que ejecutar los scripts de instalación para diferentes tipos de objetos de base de datos:

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)

Las especificaciones del paquete se enumeran primero porque siempre serán válidas y otros objetos pueden hacer referencia a ellas.Los cuerpos de paquete deben ser el último tipo de objeto creado porque probablemente se referirán a otros tipos de objetos.Debido a problemas de dependencia, le recomendamos que coloque funciones y procedimientos en paquetes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top