Wie würden Sie ein Installationssetup erstellen, das unter Berücksichtigung der neuesten Version der Datenbankaktualisierungen gegen mehrere Schemas ausgeführt wird? Idealerweise: Aktualisieren Sie eine einzelne Datei mit einer neuen Versionsnummer und senden Sie den DBAs dann ein Archiv, das alles enthält, was zur Durchführung der Datenbankaktualisierung benötigt wird. HierVersionskonfiguration von SQL
ist die Verzeichnisstruktur:
| install.sql
| install.bat
|
\---DATABASE_1.3.4.0
| README.txt
|
\---SCHEMA_01
| install.sql
| SCM1_VIEW_NAME_01_VW.vw
| SCM1_VIEW_NAME_02_VW.vw
| SCM1_PACKAGE_01_PKG.pkb
| SCM1_PACKAGE_01_PKG.pks
|
\---SCHEMA_02
install.sql
SCM2_VIEW_NAME_01_VW.vw
SCM2_VIEW_NAME_02_VW.vw
SCM2_PACKAGE_01_PKG.pkb
SCM2_PACKAGE_01_PKG.pks
Der folgende Code (hygienisiert und zugeschnitten Kürze und Sicherheit) ist in install.sql:
ACCEPT tns
ACCEPT schemaUsername
ACCEPT schemaPassword
CONNECT &&schemaUsername/&&[email protected]&&tns
@@install.sql
/
Der folgende Code ist in install.bat:
@echo off
sqlplus /nolog @install.sql
pause
Es gibt mehrere Schemas, die nicht jedes Mal aktualisiert werden müssen. Für diejenigen, die keine Updates benötigen, werden keine Verzeichnisse erstellt.
Was würde ich tun möchte, ist zwei Dateien erstellen:
- version.txt
- schemas.txt
Diese beiden (handgefertigt) Dateien, die von verwendet werden würde installieren .sql um festzustellen, welche Version von Skripts ausgeführt werden soll.
Zum Beispiel:
version.txt
1.3.4.0
schemas.txt
SCHEMA_01
SCHEMA_02
Was ich wirklich möchte wissen, ist, wie würden Sie diese Textdateien lesen von install.sql, um die entsprechenden in Stall Skripte? (Ohne PL/SQL; andere Oracle-spezifische Konventionen sind akzeptabel.)
Alle Ideen willkommen; Vielen Dank im Voraus.
Ich mache dies als Kommentar, weil es nicht direkt Ihre Frage beantwortet, aber wenn Sie ein Deployment-Tool wie Ant in Verbindung mit einem Quellcodeverwaltungssystem verwenden, können Sie so etwas ganz einfach von der Quellcodeverwaltung – dpbradley
steuern Ant ist ziemlich schwer für unsere Bedürfnisse im Moment. Ich dachte, es könnte einen One-Liner geben, der @@ install.sql in @@ DATABASE _ && version \ install.sql ändert. Wir machen auch viel manuelle Arbeit, bis der Prozess optimiert ist. Dies ist ein Schritt in Richtung einer vollautomatischen Lösung. –