moviequotebot-api/migrations/2021-06-08-102332_create_subtitle/up.sql

94 lines
2.1 KiB
MySQL
Raw Normal View History

-- Your SQL goes here
/**
Store some information on the application.
*/
CREATE TABLE IF NOT EXISTS properties
(
id int GENERATED ALWAYS AS IDENTITY,
app_key text NOT NULL,
app_value text NOT NULL,
PRIMARY KEY (id),
UNIQUE (app_key)
);
/**
Film
*/
CREATE TABLE IF NOT EXISTS films
(
id int GENERATED ALWAYS AS IDENTITY,
imdb_id varchar(10) NOT NULL,
title text NOT NULL,
year int,
film_type text NOT NULL,
season int,
episode int,
poster_link text,
PRIMARY KEY (id),
UNIQUE (imdb_id)
);
/**
Available languages
*/
CREATE TABLE IF NOT EXISTS languages
(
id int GENERATED ALWAYS AS IDENTITY,
alpha3_b char(3) NOT NULL,
alpha3_t char(3),
alpha2 char(2),
english text NOT NULL,
french text NOT NULL,
PRIMARY KEY (id),
UNIQUE (alpha3_b)
);
/**
Subtitles
*/
CREATE TABLE IF NOT EXISTS subtitles
(
id int GENERATED ALWAYS AS IDENTITY,
film_id int NOT NULL,
language_id int NOT NULL,
importer_id bigint,
importer_guild_id bigint,
imported_date timestamptz NOT NULL DEFAULT now(),
UNIQUE (film_id, language_id),
PRIMARY KEY (id),
FOREIGN KEY (film_id)
REFERENCES films (id),
FOREIGN KEY (language_id)
REFERENCES languages (id)
);
/**
Subtitle lines
*/
CREATE TABLE IF NOT EXISTS subtitle_lines
(
id int GENERATED ALWAYS AS IDENTITY,
subtitle_id int NOT NULL,
dialog_line text NOT NULL,
time_code text NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (subtitle_id)
REFERENCES subtitles (id)
);
/**
User configurations
*/
CREATE TABLE IF NOT EXISTS user_config
(
id int GENERATED ALWAYS AS IDENTITY,
user_id bigint NOT NULL,
guild_id bigint DEFAULT NULL,
default_language_id int DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE (user_id, guild_id),
FOREIGN KEY (default_language_id)
REFERENCES languages (id)
);