diff --git a/model/delta/1.4.0.sql b/model/delta/1.4.0.sql new file mode 100644 index 0000000..7a52b92 --- /dev/null +++ b/model/delta/1.4.0.sql @@ -0,0 +1,18 @@ +create table luminotes_group ( id text not null, revision timestamp with time zone not null, name text ); +create index luminotes_group_pkey on luminotes_group using btree ( id, revision ); +create view + luminotes_group_current as + select + luminotes_group.id, luminotes_group.revision, luminotes_group.name + from + luminotes_group + where + ( luminotes_group.revision in ( + select + max( sub_group.revision ) as max + from + luminotes_group sub_group + where + sub_group.id = luminotes_group.id + ) ); +create table user_group ( user_id text not null, group_id text not null, admin boolean default false ); diff --git a/model/schema.sql b/model/schema.sql index a0fa985..f36d40e 100644 --- a/model/schema.sql +++ b/model/schema.sql @@ -59,6 +59,29 @@ CREATE TABLE invite ( ALTER TABLE public.invite OWNER TO luminotes; +-- +-- Name: luminotes_group; Type: TABLE; Schema: public; Owner: luminotes; Tablespace: +-- + +CREATE TABLE luminotes_group ( + id text NOT NULL, + revision timestamp with time zone NOT NULL, + name text +); + + +ALTER TABLE public.luminotes_group OWNER TO luminotes; + +-- +-- Name: luminotes_group_current; Type: VIEW; Schema: public; Owner: luminotes +-- + +CREATE VIEW luminotes_group_current AS + SELECT luminotes_group.id, luminotes_group.revision, luminotes_group.name FROM luminotes_group WHERE (luminotes_group.revision IN (SELECT max(sub_group.revision) AS max FROM luminotes_group sub_group WHERE (sub_group.id = luminotes_group.id))); + + +ALTER TABLE public.luminotes_group_current OWNER TO luminotes; + -- -- Name: luminotes_user; Type: TABLE; Schema: public; Owner: luminotes; Tablespace: -- @@ -157,6 +180,19 @@ CREATE TABLE password_reset ( ALTER TABLE public.password_reset OWNER TO luminotes; +-- +-- Name: user_group; Type: TABLE; Schema: public; Owner: luminotes; Tablespace: +-- + +CREATE TABLE user_group ( + user_id text NOT NULL, + group_id text NOT NULL, + "admin" boolean DEFAULT false +); + + +ALTER TABLE public.user_group OWNER TO luminotes; + -- -- Name: user_notebook; Type: TABLE; Schema: public; Owner: luminotes; Tablespace: -- @@ -242,6 +278,13 @@ CREATE INDEX file_note_id_index ON file USING btree (note_id); CREATE INDEX file_notebook_id_index ON file USING btree (notebook_id); +-- +-- Name: luminotes_group_pkey; Type: INDEX; Schema: public; Owner: luminotes; Tablespace: +-- + +CREATE INDEX luminotes_group_pkey ON luminotes_group USING btree (id, revision); + + -- -- Name: luminotes_user_email_address_index; Type: INDEX; Schema: public; Owner: luminotes; Tablespace: --