diff --git a/dba/patches/1.2.3.sql b/dba/patches/1.2.3.sql index be6eb03d..3ed74725 100644 --- a/dba/patches/1.2.3.sql +++ b/dba/patches/1.2.3.sql @@ -2,6 +2,25 @@ -- Add some more cascading updates and deletes. -- For databases created before PostgreSQL 8.0. +-- I screwed up with version 0.9.6.1 and 0.9.6.2 in that the davical.sql +-- file specified them as version 1.2.2 when in reality they were version +-- 1.2.4 so we are going to clean that up here... + +CREATE TEMP TABLE db_version_check AS SELECT * FROM awl_db_revision; +DELETE FROM db_version_check WHERE ((schema_major * 1000000) + (schema_minor * 1000) + schema_patch) < 1002002; +INSERT INTO db_version_check (schema_id, schema_major, schema_minor, schema_patch, schema_name, applied_on ) + SELECT (SELECT max(schema_id) + 1 FROM awl_db_revision WHERE ((schema_major * 1000000) + (schema_minor * 1000) + schema_patch) <= 1002002), + 1, 2, 4, 'Avril', current_timestamp FROM pg_class JOIN pg_attribute ON (pg_class.oid = pg_attribute.attrelid) + WHERE pg_class.relname = 'calendar_item' AND attname = 'completed'; +DELETE FROM db_version_check + WHERE EXISTS( SELECT 1 FROM db_version_check + WHERE schema_major < db_version_check.schema_major + OR (schema_major = db_version_check.schema_major AND schema_minor < db_version_check.schema_minor ) + OR (schema_major = db_version_check.schema_major AND schema_minor = db_version_check.schema_minor AND schema_patch < db_version_check.schema_patch) ); + +INSERT INTO awl_db_revision + SELECT * FROM db_version_check WHERE schema_major=1 AND schema_minor=2 AND schema_patch=4; + BEGIN; SELECT check_db_revision(1,2,2); @@ -9,7 +28,7 @@ ALTER TABLE role_member DROP CONSTRAINT "$1"; 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; ALTER TABLE role_member DROP CONSTRAINT "$2"; 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; - + ALTER TABLE session DROP CONSTRAINT "$1"; ALTER TABLE session ADD CONSTRAINT "session_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;