mirror of
https://github.com/gabehf/Koito.git
synced 2026-03-10 16:00:36 -07:00
chore: initial public commit
This commit is contained in:
commit
fc9054b78c
250 changed files with 32809 additions and 0 deletions
772
db/migrations/etc/dump.sql
Normal file
772
db/migrations/etc/dump.sql
Normal file
|
|
@ -0,0 +1,772 @@
|
|||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
-- Dumped from database version 16.9 (Debian 16.9-1.pgdg120+1)
|
||||
-- Dumped by pg_dump version 16.4 (Debian 16.4-1.pgdg120+1)
|
||||
|
||||
-- Started on 2025-06-11 14:30:57 UTC
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET idle_in_transaction_session_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SELECT pg_catalog.set_config('search_path', '', false);
|
||||
SET check_function_bodies = false;
|
||||
SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- TOC entry 2 (class 3079 OID 16511)
|
||||
-- Name: pg_trgm; Type: EXTENSION; Schema: -; Owner: -
|
||||
--
|
||||
|
||||
CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA public;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3536 (class 0 OID 0)
|
||||
-- Dependencies: 2
|
||||
-- Name: EXTENSION pg_trgm; Type: COMMENT; Schema: -; Owner:
|
||||
--
|
||||
|
||||
COMMENT ON EXTENSION pg_trgm IS 'text similarity measurement and index searching based on trigrams';
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 921 (class 1247 OID 16885)
|
||||
-- Name: role; Type: TYPE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TYPE public.role AS ENUM (
|
||||
'admin',
|
||||
'user'
|
||||
);
|
||||
|
||||
|
||||
ALTER TYPE public.role OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 269 (class 1255 OID 16963)
|
||||
-- Name: delete_orphan_releases(); Type: FUNCTION; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE FUNCTION public.delete_orphan_releases() RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM artist_releases
|
||||
WHERE release_id = OLD.release_id
|
||||
) THEN
|
||||
DELETE FROM releases WHERE id = OLD.release_id;
|
||||
END IF;
|
||||
RETURN NULL;
|
||||
END;
|
||||
$$;
|
||||
|
||||
|
||||
ALTER FUNCTION public.delete_orphan_releases() OWNER TO postgres;
|
||||
|
||||
SET default_tablespace = '';
|
||||
|
||||
SET default_table_access_method = heap;
|
||||
|
||||
--
|
||||
-- TOC entry 231 (class 1259 OID 16901)
|
||||
-- Name: api_keys; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.api_keys (
|
||||
id integer NOT NULL,
|
||||
key text NOT NULL,
|
||||
user_id integer NOT NULL,
|
||||
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
||||
label text
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.api_keys OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 230 (class 1259 OID 16900)
|
||||
-- Name: api_keys_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE public.api_keys ALTER COLUMN id ADD GENERATED ALWAYS AS IDENTITY (
|
||||
SEQUENCE NAME public.api_keys_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 220 (class 1259 OID 16402)
|
||||
-- Name: artist_aliases; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.artist_aliases (
|
||||
artist_id integer NOT NULL,
|
||||
alias text NOT NULL,
|
||||
source text NOT NULL,
|
||||
is_primary boolean NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.artist_aliases OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 227 (class 1259 OID 16839)
|
||||
-- Name: artist_releases; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.artist_releases (
|
||||
artist_id integer NOT NULL,
|
||||
release_id integer NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.artist_releases OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 223 (class 1259 OID 16469)
|
||||
-- Name: artist_tracks; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.artist_tracks (
|
||||
artist_id integer NOT NULL,
|
||||
track_id integer NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.artist_tracks OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 219 (class 1259 OID 16393)
|
||||
-- Name: artists; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.artists (
|
||||
id integer NOT NULL,
|
||||
musicbrainz_id uuid,
|
||||
image text,
|
||||
image_source text
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.artists OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 218 (class 1259 OID 16392)
|
||||
-- Name: artists_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE public.artists ALTER COLUMN id ADD GENERATED ALWAYS AS IDENTITY (
|
||||
SEQUENCE NAME public.artists_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 235 (class 1259 OID 16980)
|
||||
-- Name: artists_with_name; Type: VIEW; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE VIEW public.artists_with_name AS
|
||||
SELECT a.id,
|
||||
a.musicbrainz_id,
|
||||
a.image,
|
||||
a.image_source,
|
||||
aa.alias AS name
|
||||
FROM (public.artists a
|
||||
JOIN public.artist_aliases aa ON ((aa.artist_id = a.id)))
|
||||
WHERE (aa.is_primary = true);
|
||||
|
||||
|
||||
ALTER VIEW public.artists_with_name OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 217 (class 1259 OID 16386)
|
||||
-- Name: goose_db_version; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.goose_db_version (
|
||||
id integer NOT NULL,
|
||||
version_id bigint NOT NULL,
|
||||
is_applied boolean NOT NULL,
|
||||
tstamp timestamp without time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.goose_db_version OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 216 (class 1259 OID 16385)
|
||||
-- Name: goose_db_version_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE public.goose_db_version ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
||||
SEQUENCE NAME public.goose_db_version_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 224 (class 1259 OID 16485)
|
||||
-- Name: listens; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.listens (
|
||||
track_id integer NOT NULL,
|
||||
listened_at timestamp with time zone NOT NULL,
|
||||
client text,
|
||||
user_id integer NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.listens OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 232 (class 1259 OID 16916)
|
||||
-- Name: release_aliases; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.release_aliases (
|
||||
release_id integer NOT NULL,
|
||||
alias text NOT NULL,
|
||||
source text NOT NULL,
|
||||
is_primary boolean NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.release_aliases OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 226 (class 1259 OID 16825)
|
||||
-- Name: releases; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.releases (
|
||||
id integer NOT NULL,
|
||||
musicbrainz_id uuid,
|
||||
image uuid,
|
||||
various_artists boolean DEFAULT false NOT NULL,
|
||||
image_source text
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.releases OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 225 (class 1259 OID 16824)
|
||||
-- Name: releases_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE public.releases ALTER COLUMN id ADD GENERATED ALWAYS AS IDENTITY (
|
||||
SEQUENCE NAME public.releases_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 236 (class 1259 OID 16984)
|
||||
-- Name: releases_with_title; Type: VIEW; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE VIEW public.releases_with_title AS
|
||||
SELECT r.id,
|
||||
r.musicbrainz_id,
|
||||
r.image,
|
||||
r.various_artists,
|
||||
r.image_source,
|
||||
ra.alias AS title
|
||||
FROM (public.releases r
|
||||
JOIN public.release_aliases ra ON ((ra.release_id = r.id)))
|
||||
WHERE (ra.is_primary = true);
|
||||
|
||||
|
||||
ALTER VIEW public.releases_with_title OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 233 (class 1259 OID 16940)
|
||||
-- Name: sessions; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.sessions (
|
||||
id uuid NOT NULL,
|
||||
user_id integer NOT NULL,
|
||||
created_at timestamp without time zone DEFAULT now() NOT NULL,
|
||||
expires_at timestamp without time zone NOT NULL,
|
||||
persistent boolean DEFAULT false NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.sessions OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 234 (class 1259 OID 16967)
|
||||
-- Name: track_aliases; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.track_aliases (
|
||||
track_id integer NOT NULL,
|
||||
alias text NOT NULL,
|
||||
is_primary boolean NOT NULL,
|
||||
source text NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.track_aliases OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 222 (class 1259 OID 16455)
|
||||
-- Name: tracks; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.tracks (
|
||||
id integer NOT NULL,
|
||||
musicbrainz_id uuid,
|
||||
duration integer DEFAULT 0 NOT NULL,
|
||||
release_id integer NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.tracks OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 221 (class 1259 OID 16454)
|
||||
-- Name: tracks_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE public.tracks ALTER COLUMN id ADD GENERATED ALWAYS AS IDENTITY (
|
||||
SEQUENCE NAME public.tracks_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 237 (class 1259 OID 16988)
|
||||
-- Name: tracks_with_title; Type: VIEW; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE VIEW public.tracks_with_title AS
|
||||
SELECT t.id,
|
||||
t.musicbrainz_id,
|
||||
t.duration,
|
||||
t.release_id,
|
||||
ta.alias AS title
|
||||
FROM (public.tracks t
|
||||
JOIN public.track_aliases ta ON ((ta.track_id = t.id)))
|
||||
WHERE (ta.is_primary = true);
|
||||
|
||||
|
||||
ALTER VIEW public.tracks_with_title OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 229 (class 1259 OID 16890)
|
||||
-- Name: users; Type: TABLE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TABLE public.users (
|
||||
id integer NOT NULL,
|
||||
username text NOT NULL,
|
||||
role public.role DEFAULT 'user'::public.role NOT NULL,
|
||||
password bytea NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE public.users OWNER TO postgres;
|
||||
|
||||
--
|
||||
-- TOC entry 228 (class 1259 OID 16889)
|
||||
-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE public.users ALTER COLUMN id ADD GENERATED ALWAYS AS IDENTITY (
|
||||
SEQUENCE NAME public.users_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1
|
||||
);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3361 (class 2606 OID 16910)
|
||||
-- Name: api_keys api_keys_key_key; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.api_keys
|
||||
ADD CONSTRAINT api_keys_key_key UNIQUE (key);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3363 (class 2606 OID 16908)
|
||||
-- Name: api_keys api_keys_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.api_keys
|
||||
ADD CONSTRAINT api_keys_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3335 (class 2606 OID 16408)
|
||||
-- Name: artist_aliases artist_aliases_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.artist_aliases
|
||||
ADD CONSTRAINT artist_aliases_pkey PRIMARY KEY (artist_id, alias);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3354 (class 2606 OID 16843)
|
||||
-- Name: artist_releases artist_releases_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.artist_releases
|
||||
ADD CONSTRAINT artist_releases_pkey PRIMARY KEY (artist_id, release_id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3344 (class 2606 OID 16473)
|
||||
-- Name: artist_tracks artist_tracks_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.artist_tracks
|
||||
ADD CONSTRAINT artist_tracks_pkey PRIMARY KEY (artist_id, track_id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3331 (class 2606 OID 16401)
|
||||
-- Name: artists artists_musicbrainz_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.artists
|
||||
ADD CONSTRAINT artists_musicbrainz_id_key UNIQUE (musicbrainz_id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3333 (class 2606 OID 16399)
|
||||
-- Name: artists artists_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.artists
|
||||
ADD CONSTRAINT artists_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3329 (class 2606 OID 16391)
|
||||
-- Name: goose_db_version goose_db_version_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.goose_db_version
|
||||
ADD CONSTRAINT goose_db_version_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3347 (class 2606 OID 16622)
|
||||
-- Name: listens listens_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.listens
|
||||
ADD CONSTRAINT listens_pkey PRIMARY KEY (track_id, listened_at);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3366 (class 2606 OID 16922)
|
||||
-- Name: release_aliases release_aliases_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.release_aliases
|
||||
ADD CONSTRAINT release_aliases_pkey PRIMARY KEY (release_id, alias);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3350 (class 2606 OID 16833)
|
||||
-- Name: releases releases_musicbrainz_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.releases
|
||||
ADD CONSTRAINT releases_musicbrainz_id_key UNIQUE (musicbrainz_id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3352 (class 2606 OID 16831)
|
||||
-- Name: releases releases_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.releases
|
||||
ADD CONSTRAINT releases_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3369 (class 2606 OID 16946)
|
||||
-- Name: sessions sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.sessions
|
||||
ADD CONSTRAINT sessions_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3371 (class 2606 OID 16973)
|
||||
-- Name: track_aliases track_aliases_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.track_aliases
|
||||
ADD CONSTRAINT track_aliases_pkey PRIMARY KEY (track_id, alias);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3340 (class 2606 OID 16463)
|
||||
-- Name: tracks tracks_musicbrainz_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.tracks
|
||||
ADD CONSTRAINT tracks_musicbrainz_id_key UNIQUE (musicbrainz_id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3342 (class 2606 OID 16461)
|
||||
-- Name: tracks tracks_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.tracks
|
||||
ADD CONSTRAINT tracks_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3357 (class 2606 OID 16897)
|
||||
-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.users
|
||||
ADD CONSTRAINT users_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3359 (class 2606 OID 16899)
|
||||
-- Name: users users_username_key; Type: CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.users
|
||||
ADD CONSTRAINT users_username_key UNIQUE (username);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3336 (class 1259 OID 16936)
|
||||
-- Name: idx_artist_aliases_alias_trgm; Type: INDEX; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE INDEX idx_artist_aliases_alias_trgm ON public.artist_aliases USING gin (alias public.gin_trgm_ops);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3337 (class 1259 OID 16495)
|
||||
-- Name: idx_artist_aliases_artist_id; Type: INDEX; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE INDEX idx_artist_aliases_artist_id ON public.artist_aliases USING btree (artist_id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3355 (class 1259 OID 16855)
|
||||
-- Name: idx_artist_releases; Type: INDEX; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE INDEX idx_artist_releases ON public.artist_releases USING btree (artist_id, release_id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3364 (class 1259 OID 16937)
|
||||
-- Name: idx_release_aliases_alias_trgm; Type: INDEX; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE INDEX idx_release_aliases_alias_trgm ON public.release_aliases USING gin (alias public.gin_trgm_ops);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3338 (class 1259 OID 16854)
|
||||
-- Name: idx_tracks_release_id; Type: INDEX; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE INDEX idx_tracks_release_id ON public.tracks USING btree (release_id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3345 (class 1259 OID 16498)
|
||||
-- Name: listens_listened_at_idx; Type: INDEX; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE INDEX listens_listened_at_idx ON public.listens USING btree (listened_at);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3348 (class 1259 OID 16499)
|
||||
-- Name: listens_track_id_listened_at_idx; Type: INDEX; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE INDEX listens_track_id_listened_at_idx ON public.listens USING btree (track_id, listened_at);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3367 (class 1259 OID 16992)
|
||||
-- Name: release_aliases_release_id_idx; Type: INDEX; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE INDEX release_aliases_release_id_idx ON public.release_aliases USING btree (release_id) WHERE (is_primary = true);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3372 (class 1259 OID 16993)
|
||||
-- Name: track_aliases_track_id_idx; Type: INDEX; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE INDEX track_aliases_track_id_idx ON public.track_aliases USING btree (track_id) WHERE (is_primary = true);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3384 (class 2620 OID 16964)
|
||||
-- Name: artist_releases trg_delete_orphan_releases; Type: TRIGGER; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
CREATE TRIGGER trg_delete_orphan_releases AFTER DELETE ON public.artist_releases FOR EACH ROW EXECUTE FUNCTION public.delete_orphan_releases();
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3380 (class 2606 OID 16957)
|
||||
-- Name: api_keys api_keys_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.api_keys
|
||||
ADD CONSTRAINT api_keys_user_id_fkey FOREIGN KEY (id) REFERENCES public.users(id) ON DELETE CASCADE;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3373 (class 2606 OID 16409)
|
||||
-- Name: artist_aliases artist_aliases_artist_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.artist_aliases
|
||||
ADD CONSTRAINT artist_aliases_artist_id_fkey FOREIGN KEY (artist_id) REFERENCES public.artists(id) ON DELETE CASCADE;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3378 (class 2606 OID 16844)
|
||||
-- Name: artist_releases artist_releases_artist_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.artist_releases
|
||||
ADD CONSTRAINT artist_releases_artist_id_fkey FOREIGN KEY (artist_id) REFERENCES public.artists(id) ON DELETE CASCADE;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3379 (class 2606 OID 16849)
|
||||
-- Name: artist_releases artist_releases_release_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.artist_releases
|
||||
ADD CONSTRAINT artist_releases_release_id_fkey FOREIGN KEY (release_id) REFERENCES public.releases(id) ON DELETE CASCADE;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3374 (class 2606 OID 16474)
|
||||
-- Name: artist_tracks artist_tracks_artist_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.artist_tracks
|
||||
ADD CONSTRAINT artist_tracks_artist_id_fkey FOREIGN KEY (artist_id) REFERENCES public.artists(id) ON DELETE CASCADE;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3375 (class 2606 OID 16479)
|
||||
-- Name: artist_tracks artist_tracks_track_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.artist_tracks
|
||||
ADD CONSTRAINT artist_tracks_track_id_fkey FOREIGN KEY (track_id) REFERENCES public.tracks(id) ON DELETE CASCADE;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3376 (class 2606 OID 16490)
|
||||
-- Name: listens listens_track_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.listens
|
||||
ADD CONSTRAINT listens_track_id_fkey FOREIGN KEY (track_id) REFERENCES public.tracks(id) ON DELETE CASCADE;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3377 (class 2606 OID 16952)
|
||||
-- Name: listens listens_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.listens
|
||||
ADD CONSTRAINT listens_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3381 (class 2606 OID 16923)
|
||||
-- Name: release_aliases release_aliases_release_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.release_aliases
|
||||
ADD CONSTRAINT release_aliases_release_id_fkey FOREIGN KEY (release_id) REFERENCES public.releases(id) ON DELETE CASCADE;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3382 (class 2606 OID 16947)
|
||||
-- Name: sessions sessions_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.sessions
|
||||
ADD CONSTRAINT sessions_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.users(id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3383 (class 2606 OID 16974)
|
||||
-- Name: track_aliases track_aliases_track_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY public.track_aliases
|
||||
ADD CONSTRAINT track_aliases_track_id_fkey FOREIGN KEY (track_id) REFERENCES public.tracks(id) ON DELETE CASCADE;
|
||||
|
||||
|
||||
-- Completed on 2025-06-11 14:30:58 UTC
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
|
||||
|
||||
-- +goose StatementEnd
|
||||
Loading…
Add table
Add a link
Reference in a new issue