Einzelnen Beitrag anzeigen

Hobbycoder

Registriert seit: 22. Feb 2017
990 Beiträge
 
#1

Aktualisieren der DB beim Kunden

  Alt 10. Feb 2025, 21:56
Datenbank: MariaDB • Version: 11.5.2 • Zugriff über: Zeos 8.0.0
Hi,

ich wollte mal so in die Runde fragen, wie ihr jeweils so die Datenbank beim Kunden aktuell haltet.
Im Zuge der Weiterentwicklung eines Projekts, kommen ja die einen oder anderen Tabellen bzw. Felder in den Tabellen hinzu, oder man ändert auch mal die Feldgrößen.

In der Entwicklungsdatenbank ja keine Problem, jedoch müssen die Änderungen auch zu Kunden übermittelt werden.
In einem älteren Projekt (mysql) habe ich das mal so gemacht, dass ich eine Klasse hatte, die die gesamte Datenbankstruktur abgebildet hat, jedes Feld und jede Tabelle überprüft und ggf. aktualisiert hat. Das hat seinerzeit auch recht gut geklappt.
Jetzt unter MariaDB habe ich das Problem, z.B bei den DECIMAL(10,2) Felder vernüftig an die Größe zu kommen (Sicherlich mein Fehler). Zeos liefert mir den DataType ftFmtBCD zurück, und ich hab noch nicht so ganz raus, wie ich da vernüftig an die Größe kommen. Zwar liefert mir ein in mariadb DECIMAL(10,2) die 2 in Size für die Nachkommastellen, aber wie ich an die 10 komme, da such ich noch.

Aber man könnte ja auch jede DB-Änderung als ALTER TABLE SQL-Zeile speichern und beim Kunden dann abspulen. Ist nur blöd, wenn da mal eine zwischen vergessen wurde. Auch müsste man für die Datenbank eine Version führen, damit die DB soweit aktualisiert wird, auch wenn der Kunde mal ein Update verpasst hat.

Oder könnte man auch ein Script in SQL machen mit Zeilen wie CREATE TABLE IF NOT EXISTS 'blaba' .... ELSE ALTER TABLE 'blabla'... ? (Weiß nicht ob das so geht)

Ich bin mir noch nicht so ganz klar, wie ich es jetzt machen will, damit es später mir möglichst wenig aufwand relativ fehlerfrei funktioniert.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat