Skip to main content

Update Datenbank-Tabellen

Für das Update der Datenbanken enthält der "DEXPRO"-Ordner den Unterordner "DbTableConfig". Dieser enthält wiederum einen "Log-Ordner" und die Ordner "MSSQL" und "MYSQL" sowie eine JSON-Datei "DEX-DATABASE" mit der Versionsnummer und einem Zeitstempel im Namen. Mit jedem Update wird eine neue JSON-Datei ausgeliefert. Die alten Dateien müssen aus dem Ordner entfernt werden! Die Datei enthält die komplette Datenbank-Struktur im Soll-Zustand.

image-1604486884190.png

Die Ordner "MSSQL" und "MYSQL" enthalten wiederum Unterordner für die beiden Datenbanken "DEX_MasterData" und "DEX_Workflow", in welchen pro Tabelle einzelne SQL-Dateien mit den CREATE-Befehlen der Tabellen enthalten sind.

 

Zugriff auf die Datenbank herstellen und Sicherung erstellen

In jedem Fall solltenmuss ein Zugriff mit entsprechenden Rechten auf die beiden Datenbanken gegeben sein! Bei MS SQL zum Beispiel über ein Management Studio.

Die beiden Datenbanken sollten vor dem Update komplett inklusive Daten gesichert werden!

 

Abgleich-Skript

Das Portal-Skript "DEXPRO_Action_Admin_DbTableData_CompareDbConfig" liest die aktuell beim Kunden vorhandene Datenbank-Struktur aus und vergleicht diese mit der gegebenen JSON-Struktur. Es werden alle Tabellen und Tabellen-Spalten inklusive Datentyp, Default-Werten und der Einstellung ob NULL-Werte zulässig sind überprüft. Zudem werden Trigger und Primary- sowie Unique-Keys überprüft.

Das Skript versucht zum Teil Abweichungen direkt zu beheben. Falls eine Tabelle noch nicht existiert, dann wird die zugehörige SQL-Datei mit dem "CREATE"-Befehl ausgelesen und ausgeführt. Fehlende Spalten werden durch die Angaben in der JSON-Datei hinzugefügt und das Skript versucht Abweichungen bei einzelnen Spalten automatisch anzupassen. Bei MS SQL werden fehlende Datenbank-Trigger für die Spalten "UpdateTS" automatisch erstellt.

Anpassungen an einer Tabellen-Spalte schlagen jedoch fehl, wenn die Spalte in einem Unique-Key verwendet werden. Unique-Keys werden aktuell nicht automatisch erstellt oder angepasst. Somit kann es sein, dass manuell nachgearbeitet werden muss.

 

DEX_MasterData

Bei dem Update müssen die beiden Datenbanken "DEX_MasterData" und "DEX_Workflow" unterschieden werden. Bei den Stammdaten werden bestehende Tabellen in der Entwicklung nur selten verändert, denn Anpassungen könnten größere Auswirkungen auf bestehende Systeme haben. Bei einem Update ist es jedoch nicht ausgeschlossen, dass bestehende Tabellen erweitert werden.

Vor dem Update sollten die Tabellen dahingehend überprüft werden, ob sich ggf. Auswirkungen auf vorhandene Stammdaten-Importe ergeben. Das ist selten der Fall - aber nicht ausgeschlossen. Aus diesem Grund sollte das Update zunächst im Testsystem durchgeführt werden.

Die Tabellen werden häufig über tägliche Jobs geleert und neu mit Stammdaten befüllt. Wenn dies vollständig zutrifft bietet es sich an die komplette Datenbank zu sichern und zu entfernen und neu anzulegen. Durch den nächsten Stammdaten-Job werden die Daten wieder vollständig importiert.

 

DEX_Workflow

Die Datenbank "DEX-Workflow" enthält Tabellen mit den gespeicherten Workflow-Konfigurationen. EsAn könnendiesen Tabellen hinzukommenwerden in der Entwicklung immer wieder Anpassungen vorgenommen. Es kommen ggf. Spalten hinzu; Default-Werte von einzelnen Spalten werden optimiert; NULL-Angaben sollen erlaubt werden oder nicht mehr erlaubt werden oder Unique-Keys kommen hinzu oder ändern sich. 

 

Manuelle Anpassungen an den Datenbanken

Auch wenn viele Anpassungen automatisch über das folgende Skript ausgeführt werden kann es sein, dass manuelle Anpassungen an bestehenden Tabellen vorgenommen werden müssen. Bei MS SQL ist dies in der Voreinstellung häufig deaktiviert. Die Einstellung "Speichern von Änderungen verhindern, die die Neuerstellung der Tabelle erfordern" muss wie in den folgenden Screenshots zu sehen aktiviert werden.

image-1604493778222.png

image-1604493823615.png