fp/services/migrations-schema/migrations/00033_create-vods.sql

47 lines
1.2 KiB
SQL

-- create s3_files table
CREATE TABLE api.s3_files (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
s3_id TEXT NOT NULL,
s3_key TEXT NOT NULL,
bucket TEXT NOT NULL
);
GRANT all ON api.vods TO automation;
GRANT SELECT ON api.vods TO web_anon;
-- create mux_assets table
CREATE TABLE api.mux_assets (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
asset_id TEXT NOT NULL,
playback_id TEXT NOT NULL,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
GRANT all ON api.mux_assets TO automation;
-- web_anon is intentionally not given privs to this table
-- re-create vods table
DROP TABLE api.vods CASCADE;
CREATE TABLE api.vods (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
stream_id UUID NOT NULL REFERENCES api.streams(id),
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW(),
published_at DATE,
title TEXT,
date DATE NOT NULL,
mux_asset UUID REFERENCES api.mux_assets(id),
thumbnail UUID REFERENCES api.s3_files(id),
vtuber UUID REFERENCES api.vtubers(id),
ipfs_cid TEXT,
s3_file UUID REFERENCES api.s3_files(id),
torrent TEXT,
announce_title TEXT,
announce_url TEXT,
note TEXT
);
GRANT all ON api.vods TO automation;
GRANT SELECT ON api.vods TO web_anon;