66 lines
2 KiB
MySQL
66 lines
2 KiB
MySQL
|
--
|
||
|
-- 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;
|