chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:32:25 +08:00
commit e014feafe1
2285 changed files with 1131979 additions and 0 deletions
@@ -0,0 +1,96 @@
-- Downloaded from: https://github.com/Ansh-Rathod/Musive-backend-2.0/blob/eb320d80d2fa07283bb4ab9351581f4c8757bcad/schema.sql
create table Users(
id serial primary key,
username varchar(28) not null unique,
passhash varchar not null
);
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
create table public."Artists"(
id integer unique not null,
username text not null unique,
display_name text not null,
avatar jsonb,
gender varchar,
PRIMARY KEY(id)
);
create table public."Tracks"(
id integer unique not null,
user_id integer not null,
tags text[] not null DEFAULT '{}',
moods text[] not null DEFAULT '{}',
genres text[] not null DEFAULT '{}',
movements text[] not null DEFAULT '{}',
keywords text not null,
duration float not null,
track_name text not null,
download_url text not null,
src text not null,
cover_image jsonb,
PRIMARY KEY(id)
);
alter table if exists songs
add constraint user_id_fk FOREIGN KEY (user_id) REFERENCES artists(id)
match full on update CASCADE on delete CASCADE;
create table public."Liked"(
id serial primary key,
track_id integer not null,
username varchar(28) not null
);
alter table public."Liked" add constraint track_id FOREIGN KEY(track_id)
REFERENCES public."Tracks"(id) match full on update CASCADE on delete cascade;
alter table public."Liked" add constraint user_id FOREIGN KEY(username)
REFERENCES public."Users"(username) match full on update CASCADE on delete cascade;
create table public."Collections"(
id uuid PRIMARY KEY NOT NULL DEFAULT uuid_generate_v4(),
name text not null,
username varchar(28) not null,
total_tracks integer DEFAULT 0
);
alter table public."Collections" add constraint user_id FOREIGN KEY(username)
REFERENCES public."Users"(username) match full on update CASCADE on delete cascade;
create table public."CollectionItems"(
collection_id uuid not null,
track_id integer not null
);
alter table public."CollectionItems" add constraint collection_id_fk FOREIGN KEY(collection_id)
REFERENCES public."Collections"(id) match full on update CASCADE on delete cascade;
alter table public."CollectionItems" add constraint track_id_fk FOREIGN KEY(track_id)
REFERENCES public."Tracks"(id) match full on update CASCADE on delete cascade;
CREATE OR REPLACE FUNCTION update_collections()
RETURNS trigger AS $$
DECLARE
BEGIN
IF TG_OP = 'INSERT' THEN
EXECUTE 'update public."Collections" set total_tracks=total_tracks+1 where id = $1;'
USING NEW.collection_id;
END IF;
IF TG_OP = 'DELETE' THEN
EXECUTE 'update public."Collections" set total_tracks=total_tracks-1 where id = $1;'
USING OLD.collection_id;
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER update_collection
AFTER INSERT OR DELETE ON public."CollectionItems"
FOR EACH ROW EXECUTE PROCEDURE update_collections();
-- pg_dump -U postgres -h containers-us-west-63.railway.app -p 7771 railway >> sqlfile.sql