LP#1373690 EDI 'use_attrs' configuration option
[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 
27     ADD COLUMN attr_set INTEGER REFERENCES acq.edi_attr_set(id),
28     ADD COLUMN use_attrs BOOLEAN NOT NULL DEFAULT FALSE;
29
30 COMMIT;
31
32