Frage

Wir haben eine große Anzahl von (2000+) Skripten, die zum Bereitstellen von Datenbankcode verwendet werden.Weiß jemand, ob es ein Tool gibt, mit dem ein einzelnes Bereitstellungsskript erstellt werden kann, das der korrekten Abhängigkeitsreihenfolge entspricht?

Ich verstehe, dass dies mit Redgates SQL Compare möglich ist, aber das ist großartig, wenn Sie über SQL Server verfügen.Aufgrund der begrenzten Informationen zum Schema Compare for Oracle-Tool scheint diese Funktionalität nicht verfügbar zu sein.

War es hilfreich?

Lösung

Ich würde mit der folgenden Reihenfolge vorgehen (weitgehend basierend auf der Reihenfolge, in der Objekte mit einem EXPDP extrahiert werden):

  • SYNONYM
  • TYPE (Tabellenspalte kann vom benutzerdefinierten Typ abhängen)
  • DB_LINK
  • SEQUENZ
  • TABELLE-TABELLE
  • TABLE-GRANT
  • TABELLE-INDEX
  • TABLE-CONSTRAINT (Möglicherweise möchten Sie, dass die PK-Einschränkung durch einen vorhandenen Index erzwungen wird.)
  • TABELLENKOMMENTARE
  • PAKET
  • FUNKTION
  • VERFAHREN
  • ANSICHT
  • TABLE-REF-EINSCHRÄNKUNGEN
  • TABELLEN-TRIGGER
  • TABELLE-INDEX (FUNKTIONAL)
  • MATERIALISIERTE ANSICHT
  • MATERIALISIERTES ANSICHTPROTOKOLL
  • JOB

Andere Tipps

Ich würde ein Skript erstellen, um Ihre Skripte in der richtigen Reihenfolge zu starten, je nachdem, wie sie implementiert sind.

  • Tabellen / Sequenzen
  • Ansichten / Typen
    • (im Allgemeinen mit der Option force, damit sie erstellt werden, wenn eine Generierungsreihenfolge vorliegt Problem oder Abhängigkeit von "Code" -Typen oder anderen Ansichten und Typen)
    • Pakete / Prozeduren / Funktionen / Trigger
      • (Wenn diese außerhalb der Abhängigkeitsreihenfolge erstellt werden, werden sie weiterhin erstellt, sind jedoch ungültig.)
      • Fremdschlüsseleinschränkungen

        Starten Sie rdbms / admin / utlrp, um ungültige Objekte neu zu kompilieren, wenn Sie mit dem Neukompilieren ungültiger Objekte fertig sind.

Ich bin nicht sicher, ob ich Ihr Problem vollständig verstanden habe, aber Sie möchten möglicherweise Folgendes versuchen:

  1. Führen Sie Ihre aktuellen Skripte aus, um eine Datenbank zu erstellen.
  2. Erstellen Sie ein leeres Schema
  3. Verwenden Sie den Schema-Vergleich von Red Gate, um Ihre Datenbank mit dem leeren Schema zu vergleichen
  4. Speichern Sie das Skript (das in Abhängigkeitsreihenfolge sein sollte)

Das Folgende ist eine allgemeine Richtlinie für die Reihenfolge, in der die Installationsskripte für verschiedene Arten von Datenbankobjekten ausgeführt werden:

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)

Paketspezifikationen werden zuerst aufgelistet, da sie immer gültig sind und andere Objekte möglicherweise auf sie verweisen.Paketkörper sollten der zuletzt erstellte Objekttyp sein, da sie sich wahrscheinlich auf andere Objekttypen beziehen.Aufgrund von Abhängigkeitsproblemen werden Sie aufgefordert, Funktionen und Prozeduren in Pakete zu packen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top