schema migration and account fixes
very close to rolling this out! just need to address some security concerns first
This commit is contained in:
parent
5566a795da
commit
570cdf6ce2
20 changed files with 641 additions and 392 deletions
65
schema_migration/001-pre-versioning.sql
Normal file
65
schema_migration/001-pre-versioning.sql
Normal file
|
@ -0,0 +1,65 @@
|
|||
--
|
||||
-- Migration
|
||||
--
|
||||
|
||||
-- Move existing tables to new schema
|
||||
ALTER TABLE public.artist SET SCHEMA arimelody;
|
||||
ALTER TABLE public.musicrelease SET SCHEMA arimelody;
|
||||
ALTER TABLE public.musiclink SET SCHEMA arimelody;
|
||||
ALTER TABLE public.musiccredit SET SCHEMA arimelody;
|
||||
ALTER TABLE public.musictrack SET SCHEMA arimelody;
|
||||
ALTER TABLE public.musicreleasetrack SET SCHEMA arimelody;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- New items
|
||||
--
|
||||
|
||||
-- Acounts
|
||||
CREATE TABLE arimelody.account (
|
||||
id uuid DEFAULT gen_random_uuid(),
|
||||
username text NOT NULL UNIQUE,
|
||||
password text NOT NULL,
|
||||
email text,
|
||||
avatar_url text
|
||||
);
|
||||
ALTER TABLE arimelody.account ADD CONSTRAINT account_pk PRIMARY KEY (id);
|
||||
|
||||
-- Privilege
|
||||
CREATE TABLE arimelody.privilege (
|
||||
account uuid NOT NULL,
|
||||
privilege text NOT NULL
|
||||
);
|
||||
ALTER TABLE arimelody.privilege ADD CONSTRAINT privilege_pk PRIMARY KEY (account, privilege);
|
||||
|
||||
-- TOTP
|
||||
CREATE TABLE arimelody.totp (
|
||||
account uuid NOT NULL,
|
||||
name text NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
ALTER TABLE arimelody.totp ADD CONSTRAINT totp_pk PRIMARY KEY (account, name);
|
||||
|
||||
-- Invites
|
||||
CREATE TABLE arimelody.invite (
|
||||
code text NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
expires_at TIMESTAMP NOT NULL
|
||||
);
|
||||
ALTER TABLE arimelody.invite ADD CONSTRAINT invite_pk PRIMARY KEY (code);
|
||||
|
||||
-- Tokens
|
||||
CREATE TABLE arimelody.token (
|
||||
token TEXT,
|
||||
account UUID NOT NULL,
|
||||
user_agent TEXT NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT current_timestamp,
|
||||
expires_at TIMESTAMP DEFAULT NULL
|
||||
);
|
||||
ALTER TABLE arimelody.token ADD CONSTRAINT token_pk PRIMARY KEY (token);
|
||||
|
||||
-- Foreign keys
|
||||
ALTER TABLE arimelody.privilege ADD CONSTRAINT privilege_account_fk FOREIGN KEY (account) REFERENCES account(id) ON DELETE CASCADE;
|
||||
ALTER TABLE arimelody.totp ADD CONSTRAINT totp_account_fk FOREIGN KEY (account) REFERENCES account(id) ON DELETE CASCADE;
|
||||
ALTER TABLE arimelody.token ADD CONSTRAINT token_account_fk FOREIGN KEY (account) REFERENCES account(id) ON DELETE CASCADE;
|
Loading…
Add table
Add a link
Reference in a new issue