mirror of
https://github.com/oxynote/oxynote.git
synced 2026-10-18 19:35:59 +02:00
974 lines
39 KiB
SQL
974 lines
39 KiB
SQL
-- generated from migrations/ by Test_Schema. Do not edit; run `make schema` in server/core.
|
|
|
|
CREATE TABLE public.branch_reviewers (
|
|
fk_branch_id text NOT NULL,
|
|
fk_user_id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
currently_approved boolean DEFAULT false NOT NULL,
|
|
previously_approved boolean DEFAULT false NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.branch_reviewers
|
|
ADD CONSTRAINT branch_reviewers_pkey PRIMARY KEY (fk_branch_id, fk_user_id);
|
|
|
|
CREATE INDEX branch_reviewers_fk_organization_id_idx ON public.branch_reviewers USING btree (fk_organization_id);
|
|
|
|
CREATE INDEX branch_reviewers_fk_user_id_idx ON public.branch_reviewers USING btree (fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.branch_reviewers
|
|
ADD CONSTRAINT branch_reviewers_fk_branch_id_fkey FOREIGN KEY (fk_branch_id) REFERENCES public.document_branches(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.branch_reviewers
|
|
ADD CONSTRAINT branch_reviewers_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.branch_reviewers
|
|
ADD CONSTRAINT branch_reviewers_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.data_sources (
|
|
id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
name text NOT NULL,
|
|
type text NOT NULL,
|
|
url text NOT NULL,
|
|
credentials bytea NOT NULL,
|
|
status text NOT NULL,
|
|
created_at timestamp with time zone NOT NULL,
|
|
updated_at timestamp with time zone
|
|
);
|
|
|
|
ALTER TABLE ONLY public.data_sources
|
|
ADD CONSTRAINT data_sources_fk_organization_id_name_key UNIQUE (fk_organization_id, name);
|
|
|
|
ALTER TABLE ONLY public.data_sources
|
|
ADD CONSTRAINT data_sources_pkey PRIMARY KEY (id);
|
|
|
|
ALTER TABLE ONLY public.data_sources
|
|
ADD CONSTRAINT data_sources_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.document_branch_history_entries (
|
|
id text NOT NULL,
|
|
fk_document_id text NOT NULL,
|
|
fk_branch_id text NOT NULL,
|
|
content jsonb NOT NULL,
|
|
created_at timestamp without time zone NOT NULL,
|
|
document_name text,
|
|
icon text,
|
|
fk_last_updated_by text,
|
|
hooks jsonb NOT NULL,
|
|
boundary boolean NOT NULL,
|
|
updated_at timestamp without time zone NOT NULL,
|
|
checksum text NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.document_branch_history_entries
|
|
ADD CONSTRAINT document_branch_history_entries_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX document_branch_history_entries_created_at_idx ON public.document_branch_history_entries USING btree (created_at);
|
|
|
|
CREATE INDEX document_branch_history_entries_fk_branch_id_created_at_idx ON public.document_branch_history_entries USING btree (fk_branch_id, created_at DESC, id DESC);
|
|
|
|
CREATE INDEX document_branch_history_entries_fk_document_id_idx ON public.document_branch_history_entries USING btree (fk_document_id);
|
|
|
|
CREATE INDEX document_branch_history_entries_fk_last_updated_by_idx ON public.document_branch_history_entries USING btree (fk_last_updated_by);
|
|
|
|
ALTER TABLE ONLY public.document_branch_history_entries
|
|
ADD CONSTRAINT document_branch_history_entries_fk_branch_id_fkey FOREIGN KEY (fk_branch_id) REFERENCES public.document_branches(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_branch_history_entries
|
|
ADD CONSTRAINT document_branch_history_entries_fk_document_id_fkey FOREIGN KEY (fk_document_id) REFERENCES public.documents(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_branch_history_entries
|
|
ADD CONSTRAINT document_branch_history_entries_fk_last_updated_by_fkey FOREIGN KEY (fk_last_updated_by) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
CREATE TABLE public.document_branch_tags (
|
|
fk_branch_id text NOT NULL,
|
|
fk_tag_id text NOT NULL,
|
|
fk_organization_id text NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.document_branch_tags
|
|
ADD CONSTRAINT document_branch_tags_pkey PRIMARY KEY (fk_branch_id, fk_tag_id);
|
|
|
|
CREATE INDEX document_branch_tags_fk_organization_id_idx ON public.document_branch_tags USING btree (fk_organization_id);
|
|
|
|
CREATE INDEX document_branch_tags_fk_tag_id_idx ON public.document_branch_tags USING btree (fk_tag_id);
|
|
|
|
ALTER TABLE ONLY public.document_branch_tags
|
|
ADD CONSTRAINT document_branch_tags_fk_branch_id_fkey FOREIGN KEY (fk_branch_id) REFERENCES public.document_branches(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_branch_tags
|
|
ADD CONSTRAINT document_branch_tags_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_branch_tags
|
|
ADD CONSTRAINT document_branch_tags_fk_tag_id_fkey FOREIGN KEY (fk_tag_id) REFERENCES public.tags(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.document_branch_views (
|
|
fk_user_id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
fk_branch_id text NOT NULL,
|
|
viewed_at timestamp without time zone NOT NULL,
|
|
viewed_from text NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.document_branch_views
|
|
ADD CONSTRAINT document_branch_views_pkey PRIMARY KEY (fk_user_id, fk_branch_id, viewed_from);
|
|
|
|
CREATE INDEX document_branch_views_fk_branch_id_idx ON public.document_branch_views USING btree (fk_branch_id);
|
|
|
|
CREATE INDEX document_branch_views_fk_organization_id_idx ON public.document_branch_views USING btree (fk_organization_id);
|
|
|
|
CREATE INDEX document_branch_views_fk_user_id_viewed_from_viewed_at_idx ON public.document_branch_views USING btree (fk_user_id, fk_organization_id, viewed_from, viewed_at DESC);
|
|
|
|
ALTER TABLE ONLY public.document_branch_views
|
|
ADD CONSTRAINT document_branch_views_fk_branch_id_fkey FOREIGN KEY (fk_branch_id) REFERENCES public.document_branches(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_branch_views
|
|
ADD CONSTRAINT document_branch_views_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_branch_views
|
|
ADD CONSTRAINT document_branch_views_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.document_branches (
|
|
id text NOT NULL,
|
|
fk_document_id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
branch_name text NOT NULL,
|
|
document_name text,
|
|
icon text,
|
|
content jsonb,
|
|
raw_content bytea,
|
|
protected boolean DEFAULT false NOT NULL,
|
|
"default" boolean DEFAULT false NOT NULL,
|
|
created_at timestamp without time zone NOT NULL,
|
|
fk_created_by text,
|
|
updated_at timestamp without time zone NOT NULL,
|
|
fk_last_updated_by text
|
|
);
|
|
|
|
ALTER TABLE ONLY public.document_branches
|
|
ADD CONSTRAINT document_branches_fk_document_id_branch_name_key UNIQUE (fk_document_id, branch_name);
|
|
|
|
ALTER TABLE ONLY public.document_branches
|
|
ADD CONSTRAINT document_branches_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX document_branches_fk_created_by_idx ON public.document_branches USING btree (fk_created_by);
|
|
|
|
CREATE INDEX document_branches_fk_last_updated_by_idx ON public.document_branches USING btree (fk_last_updated_by);
|
|
|
|
CREATE INDEX document_branches_fk_organization_id_idx ON public.document_branches USING btree (fk_organization_id);
|
|
|
|
ALTER TABLE ONLY public.document_branches
|
|
ADD CONSTRAINT document_branches_fk_created_by_fkey FOREIGN KEY (fk_created_by) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.document_branches
|
|
ADD CONSTRAINT document_branches_fk_document_id_fkey FOREIGN KEY (fk_document_id) REFERENCES public.documents(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_branches
|
|
ADD CONSTRAINT document_branches_fk_last_updated_by_fkey FOREIGN KEY (fk_last_updated_by) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.document_branches
|
|
ADD CONSTRAINT document_branches_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.document_comment_replies (
|
|
id text NOT NULL,
|
|
fk_document_comment_id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
fk_user_id text,
|
|
content jsonb NOT NULL,
|
|
created_at timestamp without time zone NOT NULL,
|
|
updated_at timestamp without time zone
|
|
);
|
|
|
|
ALTER TABLE ONLY public.document_comment_replies
|
|
ADD CONSTRAINT document_comment_replies_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX document_comment_replies_fk_document_comment_id_idx ON public.document_comment_replies USING btree (fk_document_comment_id);
|
|
|
|
CREATE INDEX document_comment_replies_fk_user_id_idx ON public.document_comment_replies USING btree (fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.document_comment_replies
|
|
ADD CONSTRAINT document_comment_replies_fk_document_comment_id_fkey FOREIGN KEY (fk_document_comment_id) REFERENCES public.document_comments(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_comment_replies
|
|
ADD CONSTRAINT document_comment_replies_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_comment_replies
|
|
ADD CONSTRAINT document_comment_replies_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
CREATE TABLE public.document_comments (
|
|
id text NOT NULL,
|
|
fk_document_id text NOT NULL,
|
|
fk_branch_id text NOT NULL,
|
|
fk_user_id text,
|
|
fk_organization_id text NOT NULL,
|
|
fk_resolved_by text,
|
|
resolved_at timestamp without time zone,
|
|
anchor_block_id text,
|
|
resolved boolean DEFAULT false NOT NULL,
|
|
content jsonb NOT NULL,
|
|
diff_deletion_context jsonb,
|
|
created_at timestamp without time zone NOT NULL,
|
|
updated_at timestamp without time zone
|
|
);
|
|
|
|
ALTER TABLE ONLY public.document_comments
|
|
ADD CONSTRAINT document_comments_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX document_comments_fk_branch_id_idx ON public.document_comments USING btree (fk_branch_id);
|
|
|
|
CREATE INDEX document_comments_fk_document_id_idx ON public.document_comments USING btree (fk_document_id);
|
|
|
|
CREATE INDEX document_comments_fk_resolved_by_idx ON public.document_comments USING btree (fk_resolved_by);
|
|
|
|
CREATE INDEX document_comments_fk_user_id_idx ON public.document_comments USING btree (fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.document_comments
|
|
ADD CONSTRAINT document_comments_fk_branch_id_fkey FOREIGN KEY (fk_branch_id) REFERENCES public.document_branches(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_comments
|
|
ADD CONSTRAINT document_comments_fk_document_id_fkey FOREIGN KEY (fk_document_id) REFERENCES public.documents(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_comments
|
|
ADD CONSTRAINT document_comments_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_comments
|
|
ADD CONSTRAINT document_comments_fk_resolved_by_fkey FOREIGN KEY (fk_resolved_by) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.document_comments
|
|
ADD CONSTRAINT document_comments_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
CREATE TABLE public.document_files (
|
|
id text NOT NULL,
|
|
location text NOT NULL,
|
|
storage_key text NOT NULL,
|
|
fk_document_id text,
|
|
fk_organization_id text,
|
|
name text NOT NULL,
|
|
size bigint NOT NULL,
|
|
content_type text NOT NULL,
|
|
created_at timestamp without time zone NOT NULL,
|
|
unreferenced_at timestamp without time zone
|
|
);
|
|
|
|
ALTER TABLE ONLY public.document_files
|
|
ADD CONSTRAINT document_files_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX document_files_fk_document_id_idx ON public.document_files USING btree (fk_document_id);
|
|
|
|
CREATE INDEX document_files_fk_organization_id_idx ON public.document_files USING btree (fk_organization_id);
|
|
|
|
ALTER TABLE ONLY public.document_files
|
|
ADD CONSTRAINT document_files_fk_document_id_fkey FOREIGN KEY (fk_document_id) REFERENCES public.documents(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.document_files
|
|
ADD CONSTRAINT document_files_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE SET NULL;
|
|
|
|
CREATE TABLE public.document_hooks (
|
|
id text NOT NULL,
|
|
type text NOT NULL,
|
|
fk_document_id text,
|
|
fk_organization_id text,
|
|
fk_branch_id text,
|
|
block_id text,
|
|
settings jsonb NOT NULL,
|
|
state text,
|
|
score integer NOT NULL,
|
|
created_at timestamp without time zone NOT NULL,
|
|
updated_at timestamp without time zone,
|
|
soft_deleted_at timestamp without time zone,
|
|
cross_branch_id text NOT NULL,
|
|
status text DEFAULT 'active'::text NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.document_hooks
|
|
ADD CONSTRAINT document_hooks_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX document_hooks_fk_branch_id_idx ON public.document_hooks USING btree (fk_branch_id);
|
|
|
|
CREATE INDEX document_hooks_fk_document_id_idx ON public.document_hooks USING btree (fk_document_id);
|
|
|
|
ALTER TABLE ONLY public.document_hooks
|
|
ADD CONSTRAINT document_hooks_fk_branch_id_fkey FOREIGN KEY (fk_branch_id) REFERENCES public.document_branches(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.document_hooks
|
|
ADD CONSTRAINT document_hooks_fk_document_id_fkey FOREIGN KEY (fk_document_id) REFERENCES public.documents(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.document_hooks
|
|
ADD CONSTRAINT document_hooks_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE SET NULL;
|
|
|
|
CREATE TABLE public.document_maintainers (
|
|
fk_document_id text NOT NULL,
|
|
fk_user_id text NOT NULL,
|
|
fk_organization_id text NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.document_maintainers
|
|
ADD CONSTRAINT document_maintainers_pkey PRIMARY KEY (fk_document_id, fk_user_id);
|
|
|
|
CREATE INDEX document_maintainers_fk_document_id_idx ON public.document_maintainers USING btree (fk_document_id);
|
|
|
|
ALTER TABLE ONLY public.document_maintainers
|
|
ADD CONSTRAINT document_maintainers_fk_document_id_fkey FOREIGN KEY (fk_document_id) REFERENCES public.documents(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_maintainers
|
|
ADD CONSTRAINT document_maintainers_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.document_maintainers
|
|
ADD CONSTRAINT document_maintainers_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.documents (
|
|
id text NOT NULL,
|
|
sort_index integer NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
fk_parent_id text,
|
|
created_at timestamp without time zone NOT NULL,
|
|
fk_created_by text,
|
|
updated_at timestamp without time zone NOT NULL,
|
|
fk_last_updated_by text
|
|
);
|
|
|
|
ALTER TABLE ONLY public.documents
|
|
ADD CONSTRAINT documents_pkey PRIMARY KEY (id);
|
|
|
|
ALTER TABLE ONLY public.documents
|
|
ADD CONSTRAINT documents_sort_index_key UNIQUE NULLS NOT DISTINCT (fk_organization_id, fk_parent_id, sort_index) DEFERRABLE;
|
|
|
|
CREATE INDEX documents_fk_created_by_idx ON public.documents USING btree (fk_created_by);
|
|
|
|
CREATE INDEX documents_fk_last_updated_by_idx ON public.documents USING btree (fk_last_updated_by);
|
|
|
|
CREATE INDEX documents_fk_organization_id_idx ON public.documents USING btree (fk_organization_id);
|
|
|
|
CREATE INDEX documents_fk_parent_id_idx ON public.documents USING btree (fk_parent_id);
|
|
|
|
ALTER TABLE ONLY public.documents
|
|
ADD CONSTRAINT documents_fk_created_by_fkey FOREIGN KEY (fk_created_by) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.documents
|
|
ADD CONSTRAINT documents_fk_last_updated_by_fkey FOREIGN KEY (fk_last_updated_by) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.documents
|
|
ADD CONSTRAINT documents_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.documents
|
|
ADD CONSTRAINT documents_fk_parent_id_fkey FOREIGN KEY (fk_parent_id) REFERENCES public.documents(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.github_installations (
|
|
installation_id numeric NOT NULL,
|
|
fk_organization_id text
|
|
);
|
|
|
|
ALTER TABLE ONLY public.github_installations
|
|
ADD CONSTRAINT github_installations_pkey PRIMARY KEY (installation_id);
|
|
|
|
CREATE INDEX github_installations_fk_organization_id_idx ON public.github_installations USING btree (fk_organization_id);
|
|
|
|
ALTER TABLE ONLY public.github_installations
|
|
ADD CONSTRAINT github_installations_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE SET NULL;
|
|
|
|
CREATE TABLE public.jwks (
|
|
id text NOT NULL,
|
|
public_key text NOT NULL,
|
|
private_key text NOT NULL,
|
|
created_at timestamp with time zone NOT NULL,
|
|
expires_at timestamp with time zone,
|
|
alg text,
|
|
crv text
|
|
);
|
|
|
|
ALTER TABLE ONLY public.jwks
|
|
ADD CONSTRAINT jwks_pkey PRIMARY KEY (id);
|
|
|
|
CREATE TABLE public.notifications (
|
|
id text NOT NULL,
|
|
code text NOT NULL,
|
|
metadata jsonb NOT NULL,
|
|
fk_user_id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
read boolean DEFAULT false NOT NULL,
|
|
created_at timestamp with time zone NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.notifications
|
|
ADD CONSTRAINT notifications_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX notifications_fk_organization_id_fk_user_id_idx ON public.notifications USING btree (fk_organization_id, fk_user_id);
|
|
|
|
CREATE INDEX notifications_fk_user_id_idx ON public.notifications USING btree (fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.notifications
|
|
ADD CONSTRAINT notifications_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.notifications
|
|
ADD CONSTRAINT notifications_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.oauth_access_tokens (
|
|
id text NOT NULL,
|
|
token text,
|
|
client_id text NOT NULL,
|
|
session_id text,
|
|
fk_user_id text,
|
|
reference_id text,
|
|
authorization_code_id text,
|
|
resources text,
|
|
requested_user_info_claims text,
|
|
fk_refresh_token_id text,
|
|
expires_at timestamp with time zone,
|
|
created_at timestamp with time zone,
|
|
revoked timestamp with time zone,
|
|
confirmation jsonb,
|
|
scopes text NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.oauth_access_tokens
|
|
ADD CONSTRAINT oauth_access_tokens_pkey PRIMARY KEY (id);
|
|
|
|
ALTER TABLE ONLY public.oauth_access_tokens
|
|
ADD CONSTRAINT oauth_access_tokens_token_key UNIQUE (token);
|
|
|
|
CREATE INDEX oauth_access_tokens_authorization_code_id_idx ON public.oauth_access_tokens USING btree (authorization_code_id);
|
|
|
|
CREATE INDEX oauth_access_tokens_client_id_idx ON public.oauth_access_tokens USING btree (client_id);
|
|
|
|
CREATE INDEX oauth_access_tokens_fk_refresh_token_id_idx ON public.oauth_access_tokens USING btree (fk_refresh_token_id);
|
|
|
|
CREATE INDEX oauth_access_tokens_fk_user_id_idx ON public.oauth_access_tokens USING btree (fk_user_id);
|
|
|
|
CREATE INDEX oauth_access_tokens_session_id_idx ON public.oauth_access_tokens USING btree (session_id);
|
|
|
|
ALTER TABLE ONLY public.oauth_access_tokens
|
|
ADD CONSTRAINT oauth_access_tokens_client_id_fkey FOREIGN KEY (client_id) REFERENCES public.oauth_clients(client_id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.oauth_access_tokens
|
|
ADD CONSTRAINT oauth_access_tokens_fk_refresh_token_id_fkey FOREIGN KEY (fk_refresh_token_id) REFERENCES public.oauth_refresh_tokens(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.oauth_access_tokens
|
|
ADD CONSTRAINT oauth_access_tokens_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.oauth_access_tokens
|
|
ADD CONSTRAINT oauth_access_tokens_session_id_fkey FOREIGN KEY (session_id) REFERENCES public.user_sessions(id) ON DELETE SET NULL;
|
|
|
|
CREATE TABLE public.oauth_client_assertions (
|
|
id text NOT NULL,
|
|
expires_at timestamp with time zone NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.oauth_client_assertions
|
|
ADD CONSTRAINT oauth_client_assertions_pkey PRIMARY KEY (id);
|
|
|
|
CREATE TABLE public.oauth_client_resources (
|
|
id text NOT NULL,
|
|
client_id text NOT NULL,
|
|
resource_id text NOT NULL,
|
|
metadata jsonb,
|
|
created_at timestamp with time zone
|
|
);
|
|
|
|
ALTER TABLE ONLY public.oauth_client_resources
|
|
ADD CONSTRAINT oauth_client_resources_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX oauth_client_resources_client_id_idx ON public.oauth_client_resources USING btree (client_id);
|
|
|
|
CREATE INDEX oauth_client_resources_resource_id_idx ON public.oauth_client_resources USING btree (resource_id);
|
|
|
|
ALTER TABLE ONLY public.oauth_client_resources
|
|
ADD CONSTRAINT oauth_client_resources_client_id_fkey FOREIGN KEY (client_id) REFERENCES public.oauth_clients(client_id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.oauth_client_resources
|
|
ADD CONSTRAINT oauth_client_resources_resource_id_fkey FOREIGN KEY (resource_id) REFERENCES public.oauth_resources(identifier) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.oauth_clients (
|
|
id text NOT NULL,
|
|
client_id text NOT NULL,
|
|
client_secret text,
|
|
client_discovery_id text,
|
|
disabled boolean,
|
|
skip_consent boolean,
|
|
enable_end_session boolean,
|
|
subject_type text,
|
|
scopes text,
|
|
client_credentials_scopes text,
|
|
fk_user_id text,
|
|
created_at timestamp with time zone,
|
|
updated_at timestamp with time zone,
|
|
name text,
|
|
uri text,
|
|
icon text,
|
|
contacts text,
|
|
tos text,
|
|
policy text,
|
|
software_id text,
|
|
software_version text,
|
|
software_statement text,
|
|
redirect_uris text NOT NULL,
|
|
post_logout_redirect_uris text,
|
|
backchannel_logout_uri text,
|
|
backchannel_logout_session_required boolean,
|
|
token_endpoint_auth_method text,
|
|
application_type text,
|
|
jwks text,
|
|
jwks_uri text,
|
|
grant_types text,
|
|
response_types text,
|
|
require_pkce boolean,
|
|
dpop_bound_access_tokens boolean,
|
|
reference_id text,
|
|
metadata jsonb
|
|
);
|
|
|
|
ALTER TABLE ONLY public.oauth_clients
|
|
ADD CONSTRAINT oauth_clients_client_id_key UNIQUE (client_id);
|
|
|
|
ALTER TABLE ONLY public.oauth_clients
|
|
ADD CONSTRAINT oauth_clients_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX oauth_clients_fk_user_id_idx ON public.oauth_clients USING btree (fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.oauth_clients
|
|
ADD CONSTRAINT oauth_clients_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.oauth_consents (
|
|
id text NOT NULL,
|
|
client_id text NOT NULL,
|
|
fk_user_id text,
|
|
reference_id text,
|
|
resources text,
|
|
requested_user_info_claims text,
|
|
scopes text NOT NULL,
|
|
created_at timestamp with time zone,
|
|
updated_at timestamp with time zone
|
|
);
|
|
|
|
ALTER TABLE ONLY public.oauth_consents
|
|
ADD CONSTRAINT oauth_consents_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX oauth_consents_client_id_fk_user_id_idx ON public.oauth_consents USING btree (client_id, fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.oauth_consents
|
|
ADD CONSTRAINT oauth_consents_client_id_fkey FOREIGN KEY (client_id) REFERENCES public.oauth_clients(client_id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.oauth_consents
|
|
ADD CONSTRAINT oauth_consents_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.oauth_refresh_tokens (
|
|
id text NOT NULL,
|
|
token text NOT NULL,
|
|
client_id text NOT NULL,
|
|
session_id text,
|
|
fk_user_id text NOT NULL,
|
|
reference_id text,
|
|
authorization_code_id text,
|
|
resources text,
|
|
requested_user_info_claims text,
|
|
expires_at timestamp with time zone,
|
|
created_at timestamp with time zone,
|
|
revoked timestamp with time zone,
|
|
rotated_at timestamp with time zone,
|
|
rotation_replay_response text,
|
|
rotation_replay_expires_at timestamp with time zone,
|
|
auth_time timestamp with time zone,
|
|
confirmation jsonb,
|
|
scopes text NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.oauth_refresh_tokens
|
|
ADD CONSTRAINT oauth_refresh_tokens_pkey PRIMARY KEY (id);
|
|
|
|
ALTER TABLE ONLY public.oauth_refresh_tokens
|
|
ADD CONSTRAINT oauth_refresh_tokens_token_key UNIQUE (token);
|
|
|
|
CREATE INDEX oauth_refresh_tokens_authorization_code_id_idx ON public.oauth_refresh_tokens USING btree (authorization_code_id);
|
|
|
|
CREATE INDEX oauth_refresh_tokens_client_id_idx ON public.oauth_refresh_tokens USING btree (client_id);
|
|
|
|
CREATE INDEX oauth_refresh_tokens_fk_user_id_idx ON public.oauth_refresh_tokens USING btree (fk_user_id);
|
|
|
|
CREATE INDEX oauth_refresh_tokens_session_id_idx ON public.oauth_refresh_tokens USING btree (session_id);
|
|
|
|
ALTER TABLE ONLY public.oauth_refresh_tokens
|
|
ADD CONSTRAINT oauth_refresh_tokens_client_id_fkey FOREIGN KEY (client_id) REFERENCES public.oauth_clients(client_id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.oauth_refresh_tokens
|
|
ADD CONSTRAINT oauth_refresh_tokens_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.oauth_refresh_tokens
|
|
ADD CONSTRAINT oauth_refresh_tokens_session_id_fkey FOREIGN KEY (session_id) REFERENCES public.user_sessions(id) ON DELETE SET NULL;
|
|
|
|
CREATE TABLE public.oauth_resources (
|
|
id text NOT NULL,
|
|
identifier text NOT NULL,
|
|
name text NOT NULL,
|
|
access_token_ttl integer,
|
|
refresh_token_ttl integer,
|
|
signing_algorithm text,
|
|
signing_key_id text,
|
|
allowed_scopes text,
|
|
custom_claims jsonb,
|
|
dpop_bound_access_tokens_required boolean,
|
|
disabled boolean,
|
|
created_at timestamp with time zone,
|
|
updated_at timestamp with time zone,
|
|
policy_version integer,
|
|
metadata jsonb
|
|
);
|
|
|
|
ALTER TABLE ONLY public.oauth_resources
|
|
ADD CONSTRAINT oauth_resources_identifier_key UNIQUE (identifier);
|
|
|
|
ALTER TABLE ONLY public.oauth_resources
|
|
ADD CONSTRAINT oauth_resources_pkey PRIMARY KEY (id);
|
|
|
|
CREATE TABLE public.organization_invitations (
|
|
id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
email text NOT NULL,
|
|
role text,
|
|
status text NOT NULL,
|
|
expires_at timestamp with time zone NOT NULL,
|
|
created_at timestamp with time zone NOT NULL,
|
|
fk_inviter_id text NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.organization_invitations
|
|
ADD CONSTRAINT organization_invitations_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX organization_invitations_email_idx ON public.organization_invitations USING btree (email);
|
|
|
|
CREATE INDEX organization_invitations_organization_id_idx ON public.organization_invitations USING btree (fk_organization_id);
|
|
|
|
ALTER TABLE ONLY public.organization_invitations
|
|
ADD CONSTRAINT organization_invitations_fk_inviter_id_fkey FOREIGN KEY (fk_inviter_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.organization_invitations
|
|
ADD CONSTRAINT organization_invitations_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.organization_members (
|
|
id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
fk_user_id text NOT NULL,
|
|
role text NOT NULL,
|
|
created_at timestamp with time zone NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.organization_members
|
|
ADD CONSTRAINT organization_members_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX organization_members_organization_id_idx ON public.organization_members USING btree (fk_organization_id);
|
|
|
|
CREATE INDEX organization_members_user_id_idx ON public.organization_members USING btree (fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.organization_members
|
|
ADD CONSTRAINT organization_members_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.organization_members
|
|
ADD CONSTRAINT organization_members_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.organizations (
|
|
id text NOT NULL,
|
|
name text NOT NULL,
|
|
slug text NOT NULL,
|
|
logo text,
|
|
created_at timestamp with time zone NOT NULL,
|
|
metadata text
|
|
);
|
|
|
|
ALTER TABLE ONLY public.organizations
|
|
ADD CONSTRAINT organizations_pkey PRIMARY KEY (id);
|
|
|
|
ALTER TABLE ONLY public.organizations
|
|
ADD CONSTRAINT organizations_slug_key UNIQUE (slug);
|
|
|
|
CREATE TABLE public.personal_variable_groups (
|
|
id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
group_name text NOT NULL,
|
|
color text NOT NULL,
|
|
sort_index integer NOT NULL,
|
|
builtin boolean NOT NULL,
|
|
created_at timestamp without time zone NOT NULL,
|
|
fk_created_by text
|
|
);
|
|
|
|
ALTER TABLE ONLY public.personal_variable_groups
|
|
ADD CONSTRAINT personal_variable_groups_fk_organization_id_group_name_key UNIQUE (fk_organization_id, group_name);
|
|
|
|
ALTER TABLE ONLY public.personal_variable_groups
|
|
ADD CONSTRAINT personal_variable_groups_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX personal_variable_groups_fk_created_by_idx ON public.personal_variable_groups USING btree (fk_created_by);
|
|
|
|
ALTER TABLE ONLY public.personal_variable_groups
|
|
ADD CONSTRAINT personal_variable_groups_fk_created_by_fkey FOREIGN KEY (fk_created_by) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.personal_variable_groups
|
|
ADD CONSTRAINT personal_variable_groups_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.personal_variable_options (
|
|
id text NOT NULL,
|
|
fk_variable_id text NOT NULL,
|
|
option_value text NOT NULL,
|
|
sort_index integer NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.personal_variable_options
|
|
ADD CONSTRAINT personal_variable_options_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX personal_variable_options_fk_variable_id_idx ON public.personal_variable_options USING btree (fk_variable_id);
|
|
|
|
ALTER TABLE ONLY public.personal_variable_options
|
|
ADD CONSTRAINT personal_variable_options_fk_variable_id_fkey FOREIGN KEY (fk_variable_id) REFERENCES public.personal_variables(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.personal_variable_values (
|
|
fk_variable_id text NOT NULL,
|
|
fk_user_id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
value text NOT NULL,
|
|
updated_at timestamp without time zone NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.personal_variable_values
|
|
ADD CONSTRAINT personal_variable_values_pkey PRIMARY KEY (fk_variable_id, fk_user_id);
|
|
|
|
CREATE INDEX personal_variable_values_fk_organization_id_idx ON public.personal_variable_values USING btree (fk_organization_id);
|
|
|
|
CREATE INDEX personal_variable_values_fk_user_id_idx ON public.personal_variable_values USING btree (fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.personal_variable_values
|
|
ADD CONSTRAINT personal_variable_values_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.personal_variable_values
|
|
ADD CONSTRAINT personal_variable_values_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.personal_variable_values
|
|
ADD CONSTRAINT personal_variable_values_fk_variable_id_fkey FOREIGN KEY (fk_variable_id) REFERENCES public.personal_variables(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.personal_variables (
|
|
id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
fk_variable_group_id text NOT NULL,
|
|
variable_key text NOT NULL,
|
|
variable_name text NOT NULL,
|
|
description text,
|
|
variable_type text NOT NULL,
|
|
default_value text,
|
|
sort_index integer NOT NULL,
|
|
builtin boolean NOT NULL,
|
|
created_at timestamp without time zone NOT NULL,
|
|
fk_created_by text,
|
|
CONSTRAINT personal_variables_variable_type_check CHECK ((variable_type = ANY (ARRAY['list'::text, 'number'::text, 'text'::text, 'time-range'::text])))
|
|
);
|
|
|
|
ALTER TABLE ONLY public.personal_variables
|
|
ADD CONSTRAINT personal_variables_fk_organization_id_variable_key_key UNIQUE (fk_organization_id, variable_key);
|
|
|
|
ALTER TABLE ONLY public.personal_variables
|
|
ADD CONSTRAINT personal_variables_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX personal_variables_fk_created_by_idx ON public.personal_variables USING btree (fk_created_by);
|
|
|
|
CREATE INDEX personal_variables_fk_variable_group_id_idx ON public.personal_variables USING btree (fk_variable_group_id);
|
|
|
|
ALTER TABLE ONLY public.personal_variables
|
|
ADD CONSTRAINT personal_variables_fk_created_by_fkey FOREIGN KEY (fk_created_by) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.personal_variables
|
|
ADD CONSTRAINT personal_variables_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.personal_variables
|
|
ADD CONSTRAINT personal_variables_fk_variable_group_id_fkey FOREIGN KEY (fk_variable_group_id) REFERENCES public.personal_variable_groups(id);
|
|
|
|
CREATE TABLE public.search_jobs (
|
|
id bigint NOT NULL,
|
|
version bigint DEFAULT 1 NOT NULL,
|
|
organization_id text NOT NULL,
|
|
document_id text,
|
|
branch_id text
|
|
);
|
|
|
|
CREATE SEQUENCE public.search_jobs_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
ALTER SEQUENCE public.search_jobs_id_seq OWNED BY public.search_jobs.id;
|
|
|
|
ALTER TABLE ONLY public.search_jobs ALTER COLUMN id SET DEFAULT nextval('public.search_jobs_id_seq'::regclass);
|
|
|
|
ALTER TABLE ONLY public.search_jobs
|
|
ADD CONSTRAINT search_jobs_organization_id_document_id_branch_id_key UNIQUE NULLS NOT DISTINCT (organization_id, document_id, branch_id);
|
|
|
|
ALTER TABLE ONLY public.search_jobs
|
|
ADD CONSTRAINT search_jobs_pkey PRIMARY KEY (id);
|
|
|
|
CREATE TABLE public.slack_apps (
|
|
team_id text NOT NULL,
|
|
fk_organization_id text,
|
|
token text NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.slack_apps
|
|
ADD CONSTRAINT slack_apps_pkey PRIMARY KEY (team_id);
|
|
|
|
CREATE INDEX slack_apps_fk_organization_id_idx ON public.slack_apps USING btree (fk_organization_id);
|
|
|
|
ALTER TABLE ONLY public.slack_apps
|
|
ADD CONSTRAINT slack_apps_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE SET NULL;
|
|
|
|
CREATE TABLE public.slack_messages (
|
|
id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
text text NOT NULL,
|
|
created_at timestamp without time zone NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.slack_messages
|
|
ADD CONSTRAINT slack_messages_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX slack_messages_fk_organization_id_created_at_idx ON public.slack_messages USING btree (fk_organization_id, created_at DESC);
|
|
|
|
ALTER TABLE ONLY public.slack_messages
|
|
ADD CONSTRAINT slack_messages_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.slack_user_links (
|
|
slack_user_id text NOT NULL,
|
|
fk_team_id text NOT NULL,
|
|
fk_user_id text NOT NULL,
|
|
settings bytea DEFAULT '\x7b7d'::bytea NOT NULL,
|
|
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.slack_user_links
|
|
ADD CONSTRAINT slack_user_links_pkey PRIMARY KEY (slack_user_id, fk_team_id);
|
|
|
|
CREATE INDEX slack_user_links_fk_team_id_fk_user_id_idx ON public.slack_user_links USING btree (fk_team_id, fk_user_id);
|
|
|
|
CREATE INDEX slack_user_links_fk_user_id_idx ON public.slack_user_links USING btree (fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.slack_user_links
|
|
ADD CONSTRAINT slack_user_links_fk_team_id_fkey FOREIGN KEY (fk_team_id) REFERENCES public.slack_apps(team_id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.slack_user_links
|
|
ADD CONSTRAINT slack_user_links_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.tags (
|
|
id text NOT NULL,
|
|
fk_organization_id text NOT NULL,
|
|
tag_name text NOT NULL,
|
|
color text NOT NULL,
|
|
sort_index integer NOT NULL,
|
|
created_at timestamp without time zone NOT NULL,
|
|
fk_created_by text
|
|
);
|
|
|
|
ALTER TABLE ONLY public.tags
|
|
ADD CONSTRAINT tags_fk_organization_id_tag_name_key UNIQUE (fk_organization_id, tag_name);
|
|
|
|
ALTER TABLE ONLY public.tags
|
|
ADD CONSTRAINT tags_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX tags_fk_created_by_idx ON public.tags USING btree (fk_created_by);
|
|
|
|
CREATE INDEX tags_fk_organization_id_idx ON public.tags USING btree (fk_organization_id);
|
|
|
|
ALTER TABLE ONLY public.tags
|
|
ADD CONSTRAINT tags_fk_created_by_fkey FOREIGN KEY (fk_created_by) REFERENCES public.users(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE ONLY public.tags
|
|
ADD CONSTRAINT tags_fk_organization_id_fkey FOREIGN KEY (fk_organization_id) REFERENCES public.organizations(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.user_accounts (
|
|
id text NOT NULL,
|
|
account_id text NOT NULL,
|
|
provider_id text NOT NULL,
|
|
fk_user_id text NOT NULL,
|
|
access_token text,
|
|
refresh_token text,
|
|
id_token text,
|
|
access_token_expires_at timestamp with time zone,
|
|
refresh_token_expires_at timestamp with time zone,
|
|
scope text,
|
|
password text,
|
|
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp with time zone NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.user_accounts
|
|
ADD CONSTRAINT user_accounts_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX user_accounts_user_id_idx ON public.user_accounts USING btree (fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.user_accounts
|
|
ADD CONSTRAINT user_accounts_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.user_sessions (
|
|
id text NOT NULL,
|
|
expires_at timestamp with time zone NOT NULL,
|
|
token text NOT NULL,
|
|
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
ip_address text,
|
|
user_agent text,
|
|
fk_user_id text NOT NULL,
|
|
active_organization_id text
|
|
);
|
|
|
|
ALTER TABLE ONLY public.user_sessions
|
|
ADD CONSTRAINT user_sessions_pkey PRIMARY KEY (id);
|
|
|
|
ALTER TABLE ONLY public.user_sessions
|
|
ADD CONSTRAINT user_sessions_token_key UNIQUE (token);
|
|
|
|
CREATE INDEX user_sessions_fk_user_id_idx ON public.user_sessions USING btree (fk_user_id);
|
|
|
|
ALTER TABLE ONLY public.user_sessions
|
|
ADD CONSTRAINT user_sessions_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.user_tag_settings (
|
|
fk_user_id text NOT NULL,
|
|
fk_tag_id text NOT NULL,
|
|
hidden boolean DEFAULT false NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.user_tag_settings
|
|
ADD CONSTRAINT user_tag_settings_pkey PRIMARY KEY (fk_user_id, fk_tag_id);
|
|
|
|
CREATE INDEX user_tag_settings_fk_tag_id_idx ON public.user_tag_settings USING btree (fk_tag_id);
|
|
|
|
ALTER TABLE ONLY public.user_tag_settings
|
|
ADD CONSTRAINT user_tag_settings_fk_tag_id_fkey FOREIGN KEY (fk_tag_id) REFERENCES public.tags(id) ON DELETE CASCADE;
|
|
|
|
ALTER TABLE ONLY public.user_tag_settings
|
|
ADD CONSTRAINT user_tag_settings_fk_user_id_fkey FOREIGN KEY (fk_user_id) REFERENCES public.users(id) ON DELETE CASCADE;
|
|
|
|
CREATE TABLE public.user_verifications (
|
|
id text NOT NULL,
|
|
identifier text NOT NULL,
|
|
value text NOT NULL,
|
|
expires_at timestamp with time zone NOT NULL,
|
|
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.user_verifications
|
|
ADD CONSTRAINT user_verifications_pkey PRIMARY KEY (id);
|
|
|
|
CREATE INDEX user_verifications_identifier_idx ON public.user_verifications USING btree (identifier);
|
|
|
|
CREATE TABLE public.users (
|
|
id text NOT NULL,
|
|
name text NOT NULL,
|
|
email text NOT NULL,
|
|
email_verified boolean NOT NULL,
|
|
image text,
|
|
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
ALTER TABLE ONLY public.users
|
|
ADD CONSTRAINT users_email_key UNIQUE (email);
|
|
|
|
ALTER TABLE ONLY public.users
|
|
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
|