Entwicklung/Datenbankversionierung: Unterschied zwischen den Versionen
Entwicklung/Datenbankversionierung (Quelltext anzeigen)
Version vom 23. Juni 2013, 21:34 Uhr
, 23. Juni 2013→Versionierung der Datenbankstruktur
Zeile 19: | Zeile 19: | ||
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. | 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). | ||
Dies gilt prinzipiell auch rückwirkend für Triggeränderungen aus früheren Mutationen, weil mehrere davon in einem Aufruf durchlaufen können. Um dieses Problem zu umgehen, können Zwischenmutationen eingefügt werden, die maintain.php aufrufen; siehe Version 113. | |||