Schema-Update
Informationen
- Bestimmte Informationen im Data Dictionary müssen sich im Schema in der Datenbank widerspiegeln, z.B. müssen
- alle reellen und aktivierten DIs bzw. aktivierten Datentabellen in Form von Datentabellen oder Views auch in der Datenbank existieren.
- die Spaltentypen (Datentypen) etc. übereinstimmen.
- Eine Ausnahme: In der Datenbank können Datentabellen bzw. DIs (Spalten) existieren, die im Data Dictionary nicht enthalten sind. Auf diese kann nicht über Module zugegriffen werden sondern nur über SQL-Statements.
- Werden an der Datentabelle DT412 Dataitem (die Spalten von Datentabellen definiert) bestimmte Änderungen vorgenommen, ist es daher notwendig, diese Änderungen auch auf der Datenbank nachzuziehen.
- Wird ein neues DI in einer Datentabelle angelegt, muss dieses nicht nur in der DT412 Dataitem, sondern auch in der Datenbank existieren.
- Um dies zu vereinfachen, werden Änderungen in der DT412 Dataitem, die Änderungen an der Datenbank nach sich ziehen, automatisch in eine Textdatei geschrieben. Diese kann anschließend z.B. im SqlDeveloper ausgeführt werden, um das Schema in der Datenbank upzudaten.
Details
- Unter oben erwähnte Änderungen fallen folgende Operationen:
- Ein neues DI (Aktiviert= , virtuell = ) wird angelegt.
- Ein bestehendes DI (Aktiviert= , virtuell = ) wird gelöscht.
- Ein bestehendes DI wird (de)aktiviert.
- Alle weiteren Änderungen, die Änderungen an der Datenbank erfordern, wie z.B. das Ändern des Spaltentyps müssen über ein Migrationspaket gelöst werden, da hierbei auch eine Migration der Daten erforderlich ist.
- Wird die erste Änderung gespeichert, wird die folgende Dialogmeldung ausgegeben: Durch Ihre Änderungen an der DT412 muss Ihre Datenbank angepasst werden. Bitte wählen Sie die passende Datei ./28_*.sql (je nach Datenbank-System) und führen Sie den Inhalt in Ihrer Datenbank aus.
- Bei weiteren Änderungen in der gleichen Sitzung wird diese Dialogmeldung nicht erneut angezeigt. Alle Änderungen in einer Sitzung werden nacheinander in dieselbe Datei geschrieben.
- Diese sind nach der Thread-Nummer und dem aktuellen Datum benannt (z.B.
20_Oracle10g_25.07.2012_changes.sql
).
- Durch Ausführen dieser Datei auf der Datenbank werden die in PLANTA project durchgeführten Änderungen im Schema nachgezogen.
- Wird ein Dataitem deaktiviert, generiert das SchemaUpdate ein drop-Statement für das Dataitem und schreibt dieses Statement in die Textdatei. Wenn erst geprüft werden soll, ob dieses DI nicht mehr benötigt wird, sollte dieses Statement zunächst nicht auf der Datenbank ausgeführt werden, da hierdurch das Dataitem inkl. Inhalt gelöscht wird.
Die Text-Datei
- Unabhängig davon, welches Format die tatsächlich verwendete Datenbank hat, werden zwei Text-Dateien erstellt: eine für Oracle und eine für MSSQL.
- Daher muss darauf geachtet werden, dass nur die richtige Version ausgeführt wird.
- Das Verzeichnis, in dem die Text-Dateien erstellt werden, ist dasselbe, in das auch Schemas exportiert werden.
- Dieses Verzeichnis kann in den Globalen Einstellungen im Parameter export_path_databasescheme im Datenfeld Template-Code eingestellt werden. Ist dieses Datenfeld leer oder existiert export_path_databasescheme nicht, wird standardmäßig ins PLANTA-Home-Verzeichnis geschrieben.