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 <benutzer> auf dem <rechner> im Verzeichnis ~/src/programs befinden.

Beispiel:

 mx001@<rechner>:~/src/programs > pg_dump -U pg_mx001 -s MXDBS | reltool -n mxmask.msk -sfx -O -

Parameter für das Programm 'reltool':

  • -U <DB-Benutzer> - 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_SQL_Datei> - 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

programmierung/allgemein/reltool.txt · Zuletzt geändert: 01.03.2020 08:25 (Externe Bearbeitung)
 

mercaware ist eine ERP-Software der All for Accounting GmbH

ERP für Ihr einzigartiges Unternehmen

Auberlenstr. 13
70736 Fellbach
Tel.: +49 711 90 65 79 71
E-Mail: