47 lines
1.2 KiB
MySQL
47 lines
1.2 KiB
MySQL
|
-- 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;
|
||
|
|