update schema.sql: use psql schemas

This commit is contained in:
ari melody 2025-01-20 11:18:40 +00:00
parent 35e862f4be
commit cdcc7466e5
Signed by: ari
GPG key ID: CF99829C92678188

View file

@ -1,18 +1,20 @@
CREATE SCHEMA arimelody AUTHORIZATION arimelody;
-- --
-- Artists (should be applicable to all art) -- Artists (should be applicable to all art)
-- --
CREATE TABLE artist ( CREATE TABLE arimelody.artist (
id character varying(64), id character varying(64),
name text NOT NULL, name text NOT NULL,
website text, website text,
avatar text avatar text
); );
ALTER TABLE artist ADD CONSTRAINT artist_pk PRIMARY KEY (id); ALTER TABLE arimelody.artist ADD CONSTRAINT artist_pk PRIMARY KEY (id);
-- --
-- Music releases -- Music releases
-- --
CREATE TABLE musicrelease ( CREATE TABLE arimelody.musicrelease (
id character varying(64) NOT NULL, id character varying(64) NOT NULL,
visible bool DEFAULT false, visible bool DEFAULT false,
title text NOT NULL, title text NOT NULL,
@ -25,56 +27,56 @@ CREATE TABLE musicrelease (
copyright text, copyright text,
copyrightURL text copyrightURL text
); );
ALTER TABLE musicrelease ADD CONSTRAINT musicrelease_pk PRIMARY KEY (id); ALTER TABLE arimelody.musicrelease ADD CONSTRAINT musicrelease_pk PRIMARY KEY (id);
-- --
-- Music links (external platform links under a release) -- Music links (external platform links under a release)
-- --
CREATE TABLE musiclink ( CREATE TABLE arimelody.musiclink (
release character varying(64) NOT NULL, release character varying(64) NOT NULL,
name text NOT NULL, name text NOT NULL,
url text NOT NULL url text NOT NULL
); );
ALTER TABLE musiclink ADD CONSTRAINT musiclink_pk PRIMARY KEY (release, name); ALTER TABLE arimelody.musiclink ADD CONSTRAINT musiclink_pk PRIMARY KEY (release, name);
-- --
-- Music credits (artist credits under a release) -- Music credits (artist credits under a release)
-- --
CREATE TABLE musiccredit ( CREATE TABLE arimelody.musiccredit (
release character varying(64) NOT NULL, release character varying(64) NOT NULL,
artist character varying(64) NOT NULL, artist character varying(64) NOT NULL,
role text NOT NULL, role text NOT NULL,
is_primary boolean DEFAULT false is_primary boolean DEFAULT false
); );
ALTER TABLE musiccredit ADD CONSTRAINT musiccredit_pk PRIMARY KEY (release, artist); ALTER TABLE arimelody.musiccredit ADD CONSTRAINT musiccredit_pk PRIMARY KEY (release, artist);
-- --
-- Music tracks (tracks under a release) -- Music tracks (tracks under a release)
-- --
CREATE TABLE musictrack ( CREATE TABLE arimelody.musictrack (
id uuid DEFAULT gen_random_uuid(), id uuid DEFAULT gen_random_uuid(),
title text NOT NULL, title text NOT NULL,
description text, description text,
lyrics text, lyrics text,
preview_url text preview_url text
); );
ALTER TABLE musictrack ADD CONSTRAINT musictrack_pk PRIMARY KEY (id); ALTER TABLE arimelody.musictrack ADD CONSTRAINT musictrack_pk PRIMARY KEY (id);
-- --
-- Music release/track pairs -- Music release/track pairs
-- --
CREATE TABLE musicreleasetrack ( CREATE TABLE arimelody.musicreleasetrack (
release character varying(64) NOT NULL, release character varying(64) NOT NULL,
track uuid NOT NULL, track uuid NOT NULL,
number integer NOT NULL number integer NOT NULL
); );
ALTER TABLE musicreleasetrack ADD CONSTRAINT musicreleasetrack_pk PRIMARY KEY (release, track); ALTER TABLE arimelody.musicreleasetrack ADD CONSTRAINT musicreleasetrack_pk PRIMARY KEY (release, track);
-- --
-- Foreign keys -- Foreign keys
-- --
ALTER TABLE musiccredit ADD CONSTRAINT musiccredit_artist_fk FOREIGN KEY (artist) REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE arimelody.musiccredit ADD CONSTRAINT musiccredit_artist_fk FOREIGN KEY (artist) REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE musiccredit ADD CONSTRAINT musiccredit_release_fk FOREIGN KEY (release) REFERENCES musicrelease(id) ON DELETE CASCADE; ALTER TABLE arimelody.musiccredit ADD CONSTRAINT musiccredit_release_fk FOREIGN KEY (release) REFERENCES musicrelease(id) ON DELETE CASCADE;
ALTER TABLE musiclink ADD CONSTRAINT musiclink_release_fk FOREIGN KEY (release) REFERENCES musicrelease(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE arimelody.musiclink ADD CONSTRAINT musiclink_release_fk FOREIGN KEY (release) REFERENCES musicrelease(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE musicreleasetrack ADD CONSTRAINT music_pair_trackref_fk FOREIGN KEY (release) REFERENCES musicrelease(id) ON DELETE CASCADE; ALTER TABLE arimelody.musicreleasetrack ADD CONSTRAINT music_pair_trackref_fk FOREIGN KEY (release) REFERENCES musicrelease(id) ON DELETE CASCADE;
ALTER TABLE musicreleasetrack ADD CONSTRAINT music_pair_releaseref_fk FOREIGN KEY (track) REFERENCES musictrack(id) ON DELETE CASCADE; ALTER TABLE arimelody.musicreleasetrack ADD CONSTRAINT music_pair_releaseref_fk FOREIGN KEY (track) REFERENCES musictrack(id) ON DELETE CASCADE;