Wrapped upgrade script
authorBill Erickson <berick@esilibrary.com>
Fri, 3 Jun 2011 12:35:21 +0000 (08:35 -0400)
committerBill Erickson <berick@esilibrary.com>
Fri, 3 Jun 2011 12:49:07 +0000 (08:49 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/upgrade/0546.schema.sip_statcats.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/XXXX.sip_statcats.sql [deleted file]

index 743be6b..ed2c3fa 100644 (file)
@@ -86,7 +86,7 @@ CREATE TRIGGER no_overlapping_deps
     BEFORE INSERT OR UPDATE ON config.db_patch_dependencies
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
-INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0545', :eg_version); -- berick
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0546', :eg_version); -- berick
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/0546.schema.sip_statcats.sql b/Open-ILS/src/sql/Pg/upgrade/0546.schema.sip_statcats.sql
new file mode 100644 (file)
index 0000000..81e3bfe
--- /dev/null
@@ -0,0 +1,84 @@
+-- Evergreen DB patch 0546.schema.sip_statcats.sql
+BEGIN;
+
+
+-- check whether patch can be applied
+SELECT evergreen.upgrade_deps_block_check('0546', :eg_version);
+
+CREATE TABLE actor.stat_cat_sip_fields (
+    field   CHAR(2) PRIMARY KEY,
+    name    TEXT    NOT NULL,
+    one_only  BOOL    NOT NULL DEFAULT FALSE
+);
+COMMENT ON TABLE actor.stat_cat_sip_fields IS $$
+Actor Statistical Category SIP Fields
+
+Contains the list of valid SIP Field identifiers for
+Statistical Categories.
+$$;
+ALTER TABLE actor.stat_cat
+    ADD COLUMN sip_field   CHAR(2) REFERENCES actor.stat_cat_sip_fields(field) ON UPDATE CASCADE ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
+    ADD COLUMN sip_format  TEXT;
+
+CREATE FUNCTION actor.stat_cat_check() RETURNS trigger AS $func$
+DECLARE
+    sipfield actor.stat_cat_sip_fields%ROWTYPE;
+    use_count INT;
+BEGIN
+    IF NEW.sip_field IS NOT NULL THEN
+        SELECT INTO sipfield * FROM actor.stat_cat_sip_fields WHERE field = NEW.sip_field;
+        IF sipfield.one_only THEN
+            SELECT INTO use_count count(id) FROM actor.stat_cat WHERE sip_field = NEW.sip_field AND id != NEW.id;
+            IF use_count > 0 THEN
+                RAISE EXCEPTION 'Sip field cannot be used twice';
+            END IF;
+        END IF;
+    END IF;
+    RETURN NEW;
+END;
+$func$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER actor_stat_cat_sip_update_trigger
+    BEFORE INSERT OR UPDATE ON actor.stat_cat FOR EACH ROW
+    EXECUTE PROCEDURE actor.stat_cat_check();
+
+CREATE TABLE asset.stat_cat_sip_fields (
+    field   CHAR(2) PRIMARY KEY,
+    name    TEXT    NOT NULL,
+    one_only BOOL    NOT NULL DEFAULT FALSE
+);
+COMMENT ON TABLE asset.stat_cat_sip_fields IS $$
+Asset Statistical Category SIP Fields
+
+Contains the list of valid SIP Field identifiers for
+Statistical Categories.
+$$;
+
+ALTER TABLE asset.stat_cat
+    ADD COLUMN sip_field   CHAR(2) REFERENCES asset.stat_cat_sip_fields(field) ON UPDATE CASCADE ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
+    ADD COLUMN sip_format  TEXT;
+
+CREATE FUNCTION asset.stat_cat_check() RETURNS trigger AS $func$
+DECLARE
+    sipfield asset.stat_cat_sip_fields%ROWTYPE;
+    use_count INT;
+BEGIN
+    IF NEW.sip_field IS NOT NULL THEN
+        SELECT INTO sipfield * FROM asset.stat_cat_sip_fields WHERE field = NEW.sip_field;
+        IF sipfield.one_only THEN
+            SELECT INTO use_count count(id) FROM asset.stat_cat WHERE sip_field = NEW.sip_field AND id != NEW.id;
+            IF use_count > 0 THEN
+                RAISE EXCEPTION 'Sip field cannot be used twice';
+            END IF;
+        END IF;
+    END IF;
+    RETURN NEW;
+END;
+$func$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER asset_stat_cat_sip_update_trigger
+    BEFORE INSERT OR UPDATE ON asset.stat_cat FOR EACH ROW
+    EXECUTE PROCEDURE asset.stat_cat_check();
+
+
+COMMIT;
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.sip_statcats.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.sip_statcats.sql
deleted file mode 100644 (file)
index aa9c5cd..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-CREATE TABLE actor.stat_cat_sip_fields (
-    field   CHAR(2) PRIMARY KEY,
-    name    TEXT    NOT NULL,
-    one_only  BOOL    NOT NULL DEFAULT FALSE
-);
-COMMENT ON TABLE actor.stat_cat_sip_fields IS $$
-Actor Statistical Category SIP Fields
-
-Contains the list of valid SIP Field identifiers for
-Statistical Categories.
-$$;
-ALTER TABLE actor.stat_cat
-    ADD COLUMN sip_field   CHAR(2) REFERENCES actor.stat_cat_sip_fields(field) ON UPDATE CASCADE ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
-    ADD COLUMN sip_format  TEXT;
-
-CREATE FUNCTION actor.stat_cat_check() RETURNS trigger AS $func$
-DECLARE
-    sipfield actor.stat_cat_sip_fields%ROWTYPE;
-    use_count INT;
-BEGIN
-    IF NEW.sip_field IS NOT NULL THEN
-        SELECT INTO sipfield * FROM actor.stat_cat_sip_fields WHERE field = NEW.sip_field;
-        IF sipfield.one_only THEN
-            SELECT INTO use_count count(id) FROM actor.stat_cat WHERE sip_field = NEW.sip_field AND id != NEW.id;
-            IF use_count > 0 THEN
-                RAISE EXCEPTION 'Sip field cannot be used twice';
-            END IF;
-        END IF;
-    END IF;
-    RETURN NEW;
-END;
-$func$ LANGUAGE PLPGSQL;
-
-CREATE TRIGGER actor_stat_cat_sip_update_trigger
-    BEFORE INSERT OR UPDATE ON actor.stat_cat FOR EACH ROW
-    EXECUTE PROCEDURE actor.stat_cat_check();
-
-CREATE TABLE asset.stat_cat_sip_fields (
-    field   CHAR(2) PRIMARY KEY,
-    name    TEXT    NOT NULL,
-    one_only BOOL    NOT NULL DEFAULT FALSE
-);
-COMMENT ON TABLE asset.stat_cat_sip_fields IS $$
-Asset Statistical Category SIP Fields
-
-Contains the list of valid SIP Field identifiers for
-Statistical Categories.
-$$;
-
-ALTER TABLE asset.stat_cat
-    ADD COLUMN sip_field   CHAR(2) REFERENCES asset.stat_cat_sip_fields(field) ON UPDATE CASCADE ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
-    ADD COLUMN sip_format  TEXT;
-
-CREATE FUNCTION asset.stat_cat_check() RETURNS trigger AS $func$
-DECLARE
-    sipfield asset.stat_cat_sip_fields%ROWTYPE;
-    use_count INT;
-BEGIN
-    IF NEW.sip_field IS NOT NULL THEN
-        SELECT INTO sipfield * FROM asset.stat_cat_sip_fields WHERE field = NEW.sip_field;
-        IF sipfield.one_only THEN
-            SELECT INTO use_count count(id) FROM asset.stat_cat WHERE sip_field = NEW.sip_field AND id != NEW.id;
-            IF use_count > 0 THEN
-                RAISE EXCEPTION 'Sip field cannot be used twice';
-            END IF;
-        END IF;
-    END IF;
-    RETURN NEW;
-END;
-$func$ LANGUAGE PLPGSQL;
-
-CREATE TRIGGER asset_stat_cat_sip_update_trigger
-    BEFORE INSERT OR UPDATE ON asset.stat_cat FOR EACH ROW
-    EXECUTE PROCEDURE asset.stat_cat_check();