
Hallo Martin, On 2004-02-04 12:38:40 +0100, Martin Edenhofer wrote:
Ferner hatte ich das Problem, dass nach Ausfuehren von DBUpdate-to-1.2.postgresql.sql, jedem Benutzer alle Berechtigungen fehlten. Dies lag offenbar an: UPDATE group_user SET permission_value = 0 (DBUpdate-to-1.2.postgresql.sql:53). Allerdings muss ich dazu sagen, dass dies erst beim 2. Aufruf von DBupdate passierte (weil dann permission_read/write nicht mehr existiert und demzufolge die UPDATEs in ll. 56-58 fehlschlagen).
Hast Du eine gute Idee wie man das abfangen kann?
Aeh, keine _gute_ :-)
Anstelle von dem unbedingten UPDATE koennte man ein
UPDATE group_user SET permission_value=0 WHERE permission_read=0 OR
permission_read=1 (bzw. andere moegliche Werte) nehmen.
Beim ersten Update waere die Bedingung wahr und permission_value wuerde
auf 0 gesetzt. Beim n-ten Update existiert permission_read nicht und es
passiert nichts.
Ja, es ist potthaesslich. Ich stelle mich ja schon in die Ecke.
Alternativ koennte es funktionieren, den Bereich
ALTER TABLE group_user ADD permission_key VARCHAR (20);
...
ALTER TABLE group_user DROP permission_write;
als Transaction zu kombinieren. Allerdings bin ich mir nicht sicher, ob
Postgres Schemaaenderungen per Rollback zuruecknehmen kann.
MfG
MB
--
Michael Bussmann