diff options
| author | Bryan Newbold <bnewbold@robocracy.org> | 2018-05-09 15:58:27 -0700 | 
|---|---|---|
| committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-05-09 16:02:09 -0700 | 
| commit | 7c79a9919d042d3a17a9011e5f3aa25801424a84 (patch) | |
| tree | 4ce94e37b255c8d9a685b8151af0849613645931 /fatcat-go | |
| parent | cb37df1888f77654d0e2d7f0a96093a26014ed64 (diff) | |
| download | fatcat-7c79a9919d042d3a17a9011e5f3aa25801424a84.tar.gz fatcat-7c79a9919d042d3a17a9011e5f3aa25801424a84.zip | |
schema fixes
Diffstat (limited to 'fatcat-go')
| -rw-r--r-- | fatcat-go/fatcat-schema.sql | 49 | 
1 files changed, 29 insertions, 20 deletions
| diff --git a/fatcat-go/fatcat-schema.sql b/fatcat-go/fatcat-schema.sql index 4a5973ec..f5983371 100644 --- a/fatcat-go/fatcat-schema.sql +++ b/fatcat-go/fatcat-schema.sql @@ -3,40 +3,49 @@  CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; +DROP TABLE IF EXISTS editor CASCADE; +DROP TABLE IF EXISTS editgroup CASCADE; +DROP TABLE IF EXISTS changelog CASCADE; +DROP TABLE IF EXISTS creator_rev CASCADE; +DROP TABLE IF EXISTS creator_ident CASCADE; +DROP TABLE IF EXISTS creator_edit CASCADE; +  -- uuid_generate_v1mc: timestamp ordered, random MAC address  -- uuid_generate_v4:   totally random  -- NB: could use LIKE clause, or "composite types"  CREATE TABLE editor ( -    id                  UUID PRIMARY KEY DEFAULT uuid_generate_v4(), +    id                  BIGSERIAL PRIMARY KEY,      username            TEXT NOT NULL,      is_admin            BOOLEAN NOT NULL DEFAULT false, -    active_editgroup_id BIGINT, -- REFERENCES(editgroup.id) via ALTER below -) +    active_editgroup_id BIGINT -- REFERENCES( editgroup(id) via ALTER below +);  CREATE TABLE editgroup (      id                  BIGSERIAL PRIMARY KEY,      extra_json          JSON, -    editor_id           BIGINT REFERENCES(editor.id) NOT NULL, -    description         TEXT, -) +    editor_id           BIGSERIAL REFERENCES editor(id) NOT NULL, +    description         TEXT +); -ALTER TABLE editor ADD CONSTRAINT editor_eg_id FOREIGN KEY (editgroup.id) +ALTER TABLE editor +    ADD CONSTRAINT editor_editgroupid_fkey FOREIGN KEY (active_editgroup_id) +        REFERENCES editgroup(id);  CREATE TABLE changelog (      id                  BIGSERIAL PRIMARY KEY, -    editgroup_id        BIGINT REFERENCES(editgroup.id) NOT NULL, -    timestamp           TIMESTAMP WITHOUT TIME ZONE DEFAULT now, -) +    editgroup_id        BIGINT REFERENCES editgroup(id) NOT NULL, +    timestamp           TIMESTAMP WITHOUT TIME ZONE DEFAULT now() +);  CREATE TABLE creator_rev (      id                  BIGSERIAL PRIMARY KEY,      extra_json          JSON,      name                TEXT, -    orcid               TEXT, -) +    orcid               TEXT +);  -- Could denormalize a "is_live" flag into revision tables, to make indices  -- more efficient @@ -45,15 +54,15 @@ CREATE INDEX creator_rev_orcid_idx ON creator_rev(orcid) WHERE orcid IS NOT NULL  CREATE TABLE creator_ident (      id                  UUID PRIMARY KEY DEFAULT uuid_generate_v4(),      is_live             BOOL NOT NULL, -    rev_id              BIGINT REFERENCES(creator_rev.id), -    redirect_id         BIGINT REFERENCES(id), -) +    rev_id              BIGINT REFERENCES creator_rev(id), +    redirect_id         UUID REFERENCES creator_ident(id) +);  CREATE TABLE creator_edit (      id                  BIGSERIAL PRIMARY KEY,      extra_json          JSON, -    ident_id            BIGINT REFERENCES(creator_ident.id) NOT NULL, -    rev_id              BIGINT REFERENCES(creator_rev.id), -    redirect_id         BIGINT REFERENCES(creator_ident.id), -    editgroup_id        BIGINT REFERENCES(editgroup.id) NOT NULL, -) +    ident_id            UUID REFERENCES creator_ident(id) NOT NULL, +    rev_id              BIGINT REFERENCES creator_rev(id), +    redirect_id         UUID REFERENCES creator_ident(id), +    editgroup_id        BIGINT REFERENCES editgroup(id) NOT NULL +); | 
