====== Aufruf des Datenbankänderungswerkzeuges 'reltool' ====== 'reltool` ist ein Programm, das die Differenzen zwischen unterschiedlichen Masken-Beschreibungen (die Datei 'mxmask.msk') erkennt und die Datenbank-Struktur anpasst. Das Programm kann auf der Datenbank neue Tabellen anlegen und die existierenden entfernen, Tabellen-Felder ändern oder neue Felder hinzufügen, neue Referenzen erstellen und die alten löschen. Das Programm kann nicht Tabellen-Felder entfernen, was bei manchen Datenbanken auch nicht möglich ist. Um das 'reltool'-Programm zu starten, muss man sich als auf dem im Verzeichnis ~/src/programs befinden. Beispiel:\\ mx001@:~/src/programs > pg_dump -U pg_mx001 -s MXDBS | reltool -n mxmask.msk -sfx -O - Parameter für das Programm 'reltool':\\ *-U - für postgres -> pg_mx001 (bei Standardinstallation) *-f - erzwingen von DROP Anweisungen; *-x - erzeugt die SQL Dateien reltool.out und reltool.const im aktuellen Verzeichniss. In der Dateien reltool.out stehen die Anweisungen zur Änderung der Datenstruktur. In reltool.const die Vorschläge zur Änderung der Daten, wie z.B. Defaultwerte; *-s - keine Checksummenprüfung auf der Datenbank; *-c - erzwingt den Abgleich der Checksumme; *-O - Alte Struktur der Datenbank erzeugt mit: mkdbs -S postgres -n Vor Aufruf des Programms müssen die mxsd-Prozesse des entsprechenden Mandanten gestoppt werden! (außer bei einem Aufruf mit dem Parameter '-x') Befehl zum Prüfen der Check-Summe [mx026@saas programs]$ vi reltool.out In der Datei müssen folgende Suchergebnisse keine Treffer zurückliefern: /DROP COL /DROP TABLE (Ausnahme ist der Treffer in der Drittletzen Zeile CHKSUMTAB) An das Ende der Datei gehen und sich die Check-Summe merken. auf User root gehen und danach aufrufen User pg_mx001 ----------------------------------------------------- Datenbank aufrufen psql MXDBS select * from chksumtab; selectierte Check-Summe mit der Check-Summe aus der Datei reltool.out vergleichen Nur wenn diese beiden Check-Summen ungleich sind, ist ein Reltool durchzuführen. User root --------- mxsd-Prozess runterfahren mercawarectl stopmxsd mx001 User pg_mx001 ------------- psql -a MXDBS < ~mxXXX/src/programs/reltool.out > reltool-$(date -I).log 2>&1 !!! Vorsicht beim Kopieren !!! Fehler prüfen ll -t vi Log-Datei mit dem entsprechendem Datum wenn ein Fehler ausgegeben wird, der noch nicht bekannt ist, müssen die SQL-Anweisungen in der Datenbank MXDBS nachgezogen werden. Alternativ kann mit folgenden grep-Befehlen nach Fehlern gesucht werden: [pg_mx026@saas ~]$ grep -i error reltool-$(date -I).log [pg_mx026@saas ~]$ grep -i fehler reltool-$(date -I).log User root --------- mxsd-Prozess hochfahren mercawarectl startmxsd mx001 Das Programm aufrufen und die zuvor gemachten Änderungen prüfen