Entwicklung/Datenbankversionierung: Unterschied zwischen den Versionen
Entwicklung/Datenbankversionierung (Quelltext anzeigen)
Version vom 6. Mai 2013, 23:59 Uhr
, 6. Mai 2013→Versionierung der Datenbankstruktur
(→Versionierung der Datenbankstruktur: +Hinweis) |
|||
Zeile 15: | Zeile 15: | ||
Wenn du eine Änderung an einer Datenbanktabelle vornehmen (oder eine neue einfügen) möchtest, vergewissere dich zuerst sorgfältig, welche Folgen dies hat. Neue Informationen zu Caches und Logs müssen an vielen Stellen berücksichtigt werden, inklusive [[XML-Schnittstelle]], [[OKAPI]], evtl. auch [[Ocprop]] etc. Evtl. müssen Änderungen auch in vorhandene Trigger eingebaut werden oder benötigen neue Trigger, um Kosistenz zu gewährleisten. Evtl. müssen Indizes geändert oder neu definiert werden, um die nötige Performance sicherzustellen. | Wenn du eine Änderung an einer Datenbanktabelle vornehmen (oder eine neue einfügen) möchtest, vergewissere dich zuerst sorgfältig, welche Folgen dies hat. Neue Informationen zu Caches und Logs müssen an vielen Stellen berücksichtigt werden, inklusive [[XML-Schnittstelle]], [[OKAPI]], evtl. auch [[Ocprop]] etc. Evtl. müssen Änderungen auch in vorhandene Trigger eingebaut werden oder benötigen neue Trigger, um Kosistenz zu gewährleisten. Evtl. müssen Indizes geändert oder neu definiert werden, um die nötige Performance sicherzustellen. | ||
Wenn du sicher bist, die Datenbank ändern zu wollen, ändere sie NICHT direkt, schreibe eine neue Mutationsfunktion in dbsv-update.php, die die Änderung vornimmt. Vorhandene Funktionen können als Vorlage dienen. Teste deine Funktion anschließend mit "php dbsv-update.php" auf der Kommandozeile. Wenn es nicht wie beabsichtigt funktionierte, mache die Änderung rückgängig und setze sysconfig.db_version eins zurück, bevor du es wieder versuchst. | Wenn du sicher bist, die Datenbank ändern zu wollen, ändere sie NICHT direkt, sondern schreibe eine neue Mutationsfunktion in dbsv-update.php, die die Änderung vornimmt. Vorhandene Funktionen können als Vorlage dienen. Teste deine Funktion anschließend mit "php dbsv-update.php" auf der Kommandozeile. Wenn es nicht wie beabsichtigt funktionierte, mache die Änderung rückgängig und setze sysconfig.db_version eins zurück, bevor du es wieder versuchst. | ||
'''Achtung:''' dbsv-update läuft ''vor'' dem Storedproc/Trigger-Update (maintain.php), also noch mit den Triggern des letzten Versionsstandes. Falls geänderte Trigger benötigt werden, müssen dieser hier zusätzlich deklariert oder deren Code eingefügt werden (siehe z.B. Version 102: hier wird der neue sp_updateall_hiddenstat()-Code ausgeführt. | '''Achtung:''' dbsv-update läuft ''vor'' dem Storedproc/Trigger-Update (maintain.php), also noch mit den Triggern des letzten Versionsstandes. Falls geänderte Trigger benötigt werden, müssen dieser hier zusätzlich deklariert oder deren Code eingefügt werden (siehe z.B. Version 102: hier wird der neue sp_updateall_hiddenstat()-Code ausgeführt). | ||