be1aa23943a21c732eae28165fe7a94ecd763a7a
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / XXXX.schema.edi_attr_set.sql
1 BEGIN;
2
3 -- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
4
5 CREATE TABLE acq.edi_attr (
6     key     TEXT PRIMARY KEY,
7     label   TEXT NOT NULL UNIQUE
8 );
9
10 CREATE TABLE acq.edi_attr_set (
11     id      SERIAL  PRIMARY KEY,
12     label   TEXT NOT NULL UNIQUE
13 );
14
15 CREATE TABLE acq.edi_attr_set_map (
16     id          SERIAL  PRIMARY KEY,
17     attr_set    INTEGER NOT NULL REFERENCES acq.edi_attr_set(id) 
18                 ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
19     attr        TEXT NOT NULL REFERENCES acq.edi_attr(key) 
20                 ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
21     CONSTRAINT edi_attr_set_map_attr_once UNIQUE (attr_set, attr)
22 );
23
24 -- An attr_set is not strictly required, since some edi_accounts/vendors 
25 -- may not need to apply any attributes.
26 ALTER TABLE acq.edi_account ADD COLUMN attr_set 
27     INTEGER REFERENCES acq.edi_attr_set(id);
28
29 COMMIT;
30
31