LP#1367458: Make acq.funding_source.code unique per owner, rather than globally user/jeffdavis/lp1367458-funding-source-code-once-per-owner
authorJeff Davis <jdavis@sitka.bclibraries.ca>
Tue, 9 Sep 2014 21:50:24 +0000 (14:50 -0700)
committerJeff Davis <jdavis@sitka.bclibraries.ca>
Tue, 9 Sep 2014 21:50:24 +0000 (14:50 -0700)
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Open-ILS/src/sql/Pg/200.schema.acq.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-funding-source-code-once-per-owner.sql [new file with mode: 0644]

index 91204a4..1c2ff80 100644 (file)
@@ -154,7 +154,8 @@ CREATE TABLE acq.funding_source (
        name            TEXT    NOT NULL,
        owner           INT     NOT NULL REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED,
        currency_type   TEXT    NOT NULL REFERENCES acq.currency_type (code) DEFERRABLE INITIALLY DEFERRED,
-       code            TEXT    UNIQUE,
+       code            TEXT,
+       CONSTRAINT funding_source_code_once_per_owner UNIQUE (code,owner),
        CONSTRAINT funding_source_name_once_per_owner UNIQUE (name,owner)
 );
 
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-funding-source-code-once-per-owner.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acq-funding-source-code-once-per-owner.sql
new file mode 100644 (file)
index 0000000..8a6895a
--- /dev/null
@@ -0,0 +1,8 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+ALTER TABLE acq.funding_source DROP CONSTRAINT funding_source_code_key;
+CREATE UNIQUE INDEX funding_source_code_once_per_owner ON acq.funding_source (code,owner);
+
+COMMIT;