Entwicklung/Datenbankversionierung: Unterschied zwischen den Versionen
Entwicklung/Datenbankversionierung (Quelltext anzeigen)
Version vom 24. Juni 2013, 14:05 Uhr
, 24. Juni 2013→Trigger & Stored Procedures
(Triggerhandling neu) |
|||
Zeile 24: | Zeile 24: | ||
== Trigger & Stored Procedures == | == Trigger & Stored Procedures == | ||
Um das Versionierungskonzept vollständig durchzuhalten, müssten eigentlich auch alle Änderungen an Triggern und Stored Procedures über die Mutationen erfolgen. Es bestünde dann allerdings die Gefahr von Inkonsistenzen zwischen den Mutationen den kompletten | Um das Versionierungskonzept vollständig durchzuhalten, müssten eigentlich auch alle Änderungen an Triggern und Stored Procedures über die Mutationen erfolgen. Es bestünde dann allerdings die Gefahr von Inkonsistenzen zwischen den Mutationen den kompletten Funktionsdefinitionen in maintain.php, die der Übersicht halber weiter benötigt werden. | ||
Solange es kein besseres Konzept gibt, wird daher wie folgt vorgegangen: | Solange es kein besseres Konzept gibt, wird daher wie folgt vorgegangen: | ||
* Wenn eine Mutation geänderte/neue Trigger benötigt, die mit dem gleichen Codeupdate eingeführt werden, muss sie diese entweder zunächst definieren oder deren Funktionalität nachbilden (siehe z.B. Version 102: hier wird der neue sp_updateall_hiddenstat()-Code ausgeführt). Dies ist nötig, weil maintain.php erst ''nach'' den Mutationen durchläuft, da | * Wenn eine Mutation geänderte/neue Trigger benötigt, die mit dem gleichen Codeupdate eingeführt werden, muss sie diese entweder zunächst definieren oder deren Funktionalität nachbilden (siehe z.B. Version 102: hier wird der neue sp_updateall_hiddenstat()-Code ausgeführt). Dies ist nötig, weil maintain.php erst ''nach'' den Mutationen durchläuft, da es neue Datenbankfelder benötigen kann (Henne-Ei-Problem). | ||
* Bei Definition der Mutationen darauf achten, ob | * Bei Definition der Mutationen darauf achten, ob sie irgendwelchen SQL-Code enthalten der auf Trigger angewiesen ist. Wenn ja, entsprechende Maßnahmen ergreifen z.B. | ||
** Diese Trigger in der Mutation neu anlegen, oder | ** Diese Trigger in der Mutation neu anlegen, oder | ||
** die Funktionalität der Trigger nachbilden, oder | ** die Funktionalität der Trigger nachbilden, oder |