Question

Nous avons un grand ensemble de scripts (2000+) utilisés pour déployer le code de base de données. Est-ce que quelqu'un sait s'il existe un outil qui peut être utilisé pour créer un seul script de déploiement conforme pour corriger l'ordre de dépendance?

Je comprends que cela peut être fait en utilisant SQL Compare de Redgate, mais c'est génial si vous avez SQL Server. D'après les informations limitées sur le schéma Compare pour Oracle Tool, il ne semble pas avoir cette fonctionnalité.

Était-ce utile?

La solution

J'irais avec l'ordre suivant (largement en fonction de l'ordre où les objets sont extraits avec un EXPDP):

  • SYNONYME
  • Type (la colonne de table peut dépendre du type défini par l'utilisateur)
  • Db_link
  • SÉQUENCE
  • Table de table
  • Titulaire de la table
  • Table-index
  • Contrainte de table (vous pouvez vouloir la contrainte PK appliquée par un index existant)
  • Tableaux de table
  • FORFAIT
  • FONCTION
  • PROCÉDURE
  • VOIR
  • Contraintes de réfaction de table
  • Déclencheur de table
  • Table-Index (fonctionnel)
  • Vue matérialisée
  • Journal de vue matérialisée
  • TRAVAIL

Autres conseils

Je créerais un script pour lancer vos scripts dans le bon ordre, selon la façon dont ils sont implémentés.

  • Tableaux / séquences
  • Vues / types
    • (généralement avec le force option afin qu'ils soient créés s'il y a un problème de commande de génération ou une dépendance aux types de "code" ou d'autres vues et types)
  • Packages / procédures / fonctions / déclencheurs
    • (Si ceux-ci sont créés par ordre de dépendance, ils créeront toujours, mais seront invalides)
  • Contraintes de clés étrangères

Lancez RDBMS / Admin / UTLRP pour recompiler les objets non valides lorsque vous avez terminé pour recompiler les objets non valides.

Je ne suis pas sûr d'avoir bien compris votre problème, mais vous voudrez peut-être essayer ce qui suit:

  1. Exécutez vos scripts actuels pour créer une base de données
  2. Créer un schéma vide
  3. Utilisez le schéma de Red Gate Comparez pour comparer votre base de données avec le schéma vide
  4. Enregistrer le script (qui devrait être dans l'ordre de dépendance)

Ce qui suit est une directive générale pour l'ordre dans lequel exécuter les scripts d'installation pour différents types d'objets de base de données:

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)

Les spécifications du package sont répertoriées en premier car elles seront toujours valides et d'autres objets pourraient y faire référence. Les corps d'emballage doivent être le dernier type d'objet créé car ils feront probablement référence à d'autres types d'objets. En raison de problèmes de dépendance, vous êtes encouragé à placer des fonctions et des procédures dans les packages.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top