[3733] | 1 | |
---|
| 2 | -- Add some more cascading updates and deletes. |
---|
| 3 | -- For databases created before PostgreSQL 8.0. |
---|
| 4 | |
---|
| 5 | -- I screwed up with version 0.9.6.1 and 0.9.6.2 in that the davical.sql |
---|
| 6 | -- file specified them as version 1.2.2 when in reality they were version |
---|
| 7 | -- 1.2.4 so we are going to clean that up here... |
---|
| 8 | |
---|
| 9 | CREATE TEMP TABLE db_version_check AS SELECT * FROM awl_db_revision; |
---|
| 10 | DELETE FROM db_version_check WHERE ((schema_major * 1000000) + (schema_minor * 1000) + schema_patch) < 1002002; |
---|
| 11 | INSERT INTO db_version_check (schema_id, schema_major, schema_minor, schema_patch, schema_name, applied_on ) |
---|
| 12 | SELECT (SELECT max(schema_id) + 1 FROM awl_db_revision WHERE ((schema_major * 1000000) + (schema_minor * 1000) + schema_patch) <= 1002002), |
---|
| 13 | 1, 2, 4, 'Avril', current_timestamp FROM pg_class JOIN pg_attribute ON (pg_class.oid = pg_attribute.attrelid) |
---|
| 14 | WHERE pg_class.relname = 'calendar_item' AND attname = 'completed'; |
---|
| 15 | DELETE FROM db_version_check |
---|
| 16 | WHERE EXISTS( SELECT 1 FROM db_version_check |
---|
| 17 | WHERE schema_major < db_version_check.schema_major |
---|
| 18 | OR (schema_major = db_version_check.schema_major AND schema_minor < db_version_check.schema_minor ) |
---|
| 19 | OR (schema_major = db_version_check.schema_major AND schema_minor = db_version_check.schema_minor AND schema_patch < db_version_check.schema_patch) ); |
---|
| 20 | |
---|
| 21 | INSERT INTO awl_db_revision |
---|
| 22 | SELECT * FROM db_version_check WHERE schema_major=1 AND schema_minor=2 AND schema_patch=4; |
---|
| 23 | |
---|
| 24 | BEGIN; |
---|
| 25 | SELECT check_db_revision(1,2,2); |
---|
| 26 | |
---|
| 27 | ALTER TABLE role_member DROP CONSTRAINT "$1"; |
---|
| 28 | ALTER TABLE role_member ADD CONSTRAINT "role_member_role_no_fkey" FOREIGN KEY (role_no) REFERENCES roles(role_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 29 | ALTER TABLE role_member DROP CONSTRAINT "$2"; |
---|
| 30 | ALTER TABLE role_member ADD CONSTRAINT "role_member_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 31 | |
---|
| 32 | ALTER TABLE session DROP CONSTRAINT "$1"; |
---|
| 33 | ALTER TABLE session ADD CONSTRAINT "session_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 34 | |
---|
| 35 | ALTER TABLE relationship DROP CONSTRAINT "$1"; |
---|
| 36 | ALTER TABLE relationship ADD CONSTRAINT "relationship_from_user_fkey" FOREIGN KEY (from_user) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 37 | ALTER TABLE relationship DROP CONSTRAINT "$2"; |
---|
| 38 | ALTER TABLE relationship ADD CONSTRAINT "relationship_to_user_fkey" FOREIGN KEY (to_user) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 39 | |
---|
| 40 | ALTER TABLE usr_setting DROP CONSTRAINT "$1"; |
---|
| 41 | ALTER TABLE usr_setting ADD CONSTRAINT "usr_setting_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 42 | |
---|
| 43 | ALTER TABLE tmp_password DROP CONSTRAINT "$1"; |
---|
| 44 | ALTER TABLE tmp_password ADD CONSTRAINT "tmp_password_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 45 | |
---|
| 46 | ALTER TABLE caldav_data DROP CONSTRAINT "$1"; |
---|
| 47 | ALTER TABLE caldav_data ADD CONSTRAINT "caldav_data_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 48 | ALTER TABLE caldav_data DROP CONSTRAINT "$2"; |
---|
| 49 | ALTER TABLE caldav_data ADD CONSTRAINT "caldav_data_logged_user_fkey" FOREIGN KEY (logged_user) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 50 | |
---|
| 51 | ALTER TABLE property DROP CONSTRAINT "$1"; |
---|
| 52 | ALTER TABLE property ADD CONSTRAINT "property_changed_by_fkey" FOREIGN KEY (changed_by) REFERENCES usr(user_no) ON UPDATE CASCADE; |
---|
| 53 | |
---|
| 54 | ALTER TABLE calendar_item DROP CONSTRAINT "$1"; |
---|
| 55 | ALTER TABLE calendar_item ADD CONSTRAINT "calendar_item_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 56 | ALTER TABLE calendar_item DROP CONSTRAINT "$2"; |
---|
| 57 | ALTER TABLE calendar_item ADD CONSTRAINT "calendar_item_tz_id_fkey" FOREIGN KEY (tz_id) REFERENCES time_zone(tz_id) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE; |
---|
| 58 | |
---|
| 59 | SELECT new_db_revision(1,2,3, 'Mars' ); |
---|
| 60 | COMMIT; |
---|
| 61 | ROLLBACK; |
---|
| 62 | |
---|