Einzelnen Beitrag anzeigen

TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.177 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Datendefinition der DB im Programm prüfen

  Alt 10. Sep 2018, 07:24
Bei uns ist das so gelöst + das klappt gut:
- Es gibt in der Software eine Konstante DB_VERSION, zB 12
- Es gibt weiter eine Klasse, die Änderungsscripts auf die DB loslassen kann. Die Änderungsscripts sind an eine DB-Version gebunden + vergleichen diese Version mit der Konstanten. So kann die Klasse erkennen, welche Scripts ausgeführt werden müssen und schreiben die DB Version in die Datenbank. An der Stelle können auch Datenänderungen durchgeführt werden, wenn nötig. Weil die Klasse zusätzlich auch eine Info in der DB ablegt, kann man sich dann versionsbezogen eine History ansehen.
- Über die DB_VERSION kann der Client abgleichen, ob die DB-Version der DB mit seiner eigenen übereinstimmt. Wenn nicht --> Meldung bzw Ende.
- In Multiuser-Umgebung funktioniert das auch - der erste Client updatet die DB, uns für die anderen passt es dann schon.
- Bei der Auslieferung der Software stimmten die beiden DB Versionen natürlich überein + ab dann funktioniert obiges Schema.

Aurelius hat einen automatischen Strukturabgleich, aber der ergänzt nur + löscht keine Felder bzw migriert Daten.

Und: Wir haben da gleiche Schema auch für reine Datenänderungen ohne Strukturänderungen (zB Umkodieren etc). Alles, was nur 1x gemacht werden soll, kann so abgebildet werden.
  Mit Zitat antworten Zitat