Add missing migrations

This commit is contained in:
grimsi
2025-09-29 15:58:24 +02:00
parent ec55db54af
commit 50868320ab
3 changed files with 253 additions and 201 deletions
@@ -4,346 +4,356 @@
/******************************************************************************************
* 1. Sequences (hi/lo allocation size = 50 for performance)
******************************************************************************************/
create sequence COMPANY_SEQ
increment by 50;
CREATE SEQUENCE COMPANY_SEQ
INCREMENT BY 50;
create sequence DIRECTORY_MAPPING_SEQ
increment by 50;
CREATE SEQUENCE DIRECTORY_MAPPING_SEQ
INCREMENT BY 50;
create sequence GAME_FIELD_METADATA_SEQ
increment by 50;
CREATE SEQUENCE GAME_FIELD_METADATA_SEQ
INCREMENT BY 50;
create sequence GAME_FIELD_SOURCE_SEQ
increment by 50;
CREATE SEQUENCE GAME_FIELD_SOURCE_SEQ
INCREMENT BY 50;
create sequence GAME_SEQ
increment by 50;
CREATE SEQUENCE GAME_SEQ
INCREMENT BY 50;
create sequence IMAGE_SEQ
increment by 50;
CREATE SEQUENCE IMAGE_SEQ
INCREMENT BY 50;
create sequence LIBRARY_SEQ
increment by 50;
CREATE SEQUENCE LIBRARY_SEQ
INCREMENT BY 50;
create sequence USERS_SEQ
increment by 50;
CREATE SEQUENCE USERS_SEQ
INCREMENT BY 50;
/******************************************************************************************
* 2. Tables
******************************************************************************************/
create table APP_CONFIG
CREATE TABLE APP_CONFIG
(
"key" CHARACTER VARYING(255) not null
primary key,
"key" CHARACTER VARYING(255) NOT NULL
PRIMARY KEY,
"value" CHARACTER VARYING(255)
);
create table COMPANY
CREATE TABLE COMPANY
(
ID BIGINT not null
primary key,
ID BIGINT NOT NULL
PRIMARY KEY,
NAME CHARACTER VARYING(255),
TYPE TINYINT,
constraint UK4UCNYHR8I0URHWDUDFAHKOB9E
unique (NAME, TYPE),
check ("TYPE" BETWEEN 0 AND 1)
CONSTRAINT UK4UCNYHR8I0URHWDUDFAHKOB9E
UNIQUE (NAME, TYPE),
CHECK ("TYPE" BETWEEN 0 AND 1)
);
create table DIRECTORY_MAPPING
CREATE TABLE DIRECTORY_MAPPING
(
ID BIGINT not null
primary key,
ID BIGINT NOT NULL
PRIMARY KEY,
EXTERNAL_PATH CHARACTER VARYING(255),
INTERNAL_PATH CHARACTER VARYING(255)
constraint UKJ3GSATFAHEWFOLSEAJ29O3KYT
unique
CONSTRAINT UKJ3GSATFAHEWFOLSEAJ29O3KYT
UNIQUE
);
create table IMAGE
CREATE TABLE IMAGE
(
ID BIGINT not null
primary key,
ID BIGINT NOT NULL
PRIMARY KEY,
CONTENT_ID CHARACTER VARYING(255),
CONTENT_LENGTH BIGINT,
MIME_TYPE CHARACTER VARYING(255),
ORIGINAL_URL CHARACTER VARYING(255),
TYPE TINYINT,
check ("TYPE" BETWEEN 0 AND 3)
CHECK ("TYPE" BETWEEN 0 AND 3)
);
create table LIBRARY
CREATE TABLE LIBRARY
(
ID BIGINT not null
primary key,
CREATED_AT TIMESTAMP WITH TIME ZONE not null,
ID BIGINT NOT NULL
PRIMARY KEY,
CREATED_AT TIMESTAMP WITH TIME ZONE NOT NULL,
NAME CHARACTER VARYING(255),
UPDATED_AT TIMESTAMP WITH TIME ZONE not null
UPDATED_AT TIMESTAMP WITH TIME ZONE NOT NULL
);
create table GAME
CREATE TABLE GAME
(
ID BIGINT not null
primary key,
ID BIGINT NOT NULL
PRIMARY KEY,
COMMENT CHARACTER LARGE OBJECT,
CREATED_AT TIMESTAMP WITH TIME ZONE not null,
CREATED_AT TIMESTAMP WITH TIME ZONE NOT NULL,
CRITIC_RATING INTEGER,
DOWNLOAD_COUNT INTEGER,
FILE_SIZE BIGINT,
MATCH_CONFIRMED BOOLEAN,
PATH CHARACTER VARYING(255)
constraint UK4WXN9FPXFQ8QXPSB7FY0O3NOA
unique,
CONSTRAINT UK4WXN9FPXFQ8QXPSB7FY0O3NOA
UNIQUE,
RELEASE TIMESTAMP WITH TIME ZONE,
SUMMARY CHARACTER LARGE OBJECT,
TITLE CHARACTER VARYING(255),
UPDATED_AT TIMESTAMP WITH TIME ZONE not null,
UPDATED_AT TIMESTAMP WITH TIME ZONE NOT NULL,
USER_RATING INTEGER,
COVER_IMAGE_ID BIGINT
constraint UK52RQ62FLPBNTI77BYKM7UAHKQ
unique,
CONSTRAINT UK52RQ62FLPBNTI77BYKM7UAHKQ
UNIQUE,
HEADER_IMAGE_ID BIGINT
constraint UK30B16LLQV54H40XIOGP7T9P35
unique,
CONSTRAINT UK30B16LLQV54H40XIOGP7T9P35
UNIQUE,
LIBRARY_ID BIGINT,
constraint FK6CVB43REAYSNYPI0XDY6HQTVF
foreign key (COVER_IMAGE_ID) references IMAGE,
constraint FK8N86NDPGKMOO7YOLX6HL8N84G
foreign key (HEADER_IMAGE_ID) references IMAGE,
constraint FKIUVR8XFB63T1K6T43EYYXVO2C
foreign key (LIBRARY_ID) references LIBRARY
CONSTRAINT FK6CVB43REAYSNYPI0XDY6HQTVF
FOREIGN KEY (COVER_IMAGE_ID) REFERENCES IMAGE,
CONSTRAINT FK8N86NDPGKMOO7YOLX6HL8N84G
FOREIGN KEY (HEADER_IMAGE_ID) REFERENCES IMAGE,
CONSTRAINT FKIUVR8XFB63T1K6T43EYYXVO2C
FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY
);
create table GAME_DEVELOPERS
CREATE TABLE GAME_DEVELOPERS
(
GAME_ID BIGINT not null,
DEVELOPERS_ID BIGINT not null,
constraint FKB12PO9L2B9OJBAIHC82MM2QXB
foreign key (DEVELOPERS_ID) references COMPANY,
constraint FKS4IJSVPIJ53DSL143XVRGBS09
foreign key (GAME_ID) references GAME
GAME_ID BIGINT NOT NULL,
DEVELOPERS_ID BIGINT NOT NULL,
CONSTRAINT FKB12PO9L2B9OJBAIHC82MM2QXB
FOREIGN KEY (DEVELOPERS_ID) REFERENCES COMPANY,
CONSTRAINT FKS4IJSVPIJ53DSL143XVRGBS09
FOREIGN KEY (GAME_ID) REFERENCES GAME
);
create table GAME_FEATURES
CREATE TABLE GAME_FEATURES
(
GAME_ID BIGINT not null,
GAME_ID BIGINT NOT NULL,
FEATURES TINYINT,
constraint FK63XLTCT60SCIMPM06K8BHBE4A
foreign key (GAME_ID) references GAME,
check ("FEATURES" BETWEEN 0 AND 23)
CONSTRAINT FK63XLTCT60SCIMPM06K8BHBE4A
FOREIGN KEY (GAME_ID) REFERENCES GAME,
CHECK ("FEATURES" BETWEEN 0 AND 23)
);
create table GAME_GENRES
CREATE TABLE GAME_GENRES
(
GAME_ID BIGINT not null,
GAME_ID BIGINT NOT NULL,
GENRES TINYINT,
constraint FKDTSX09YOPD98E0LUEWRUSJD9E
foreign key (GAME_ID) references GAME,
check ("GENRES" BETWEEN 0 AND 25)
CONSTRAINT FKDTSX09YOPD98E0LUEWRUSJD9E
FOREIGN KEY (GAME_ID) REFERENCES GAME,
CHECK ("GENRES" BETWEEN 0 AND 25)
);
create table GAME_IMAGES
CREATE TABLE GAME_IMAGES
(
GAME_ID BIGINT not null,
IMAGES_ID BIGINT not null
constraint UKBDE7M3TKHIEEYBINM2ED0B6X1
unique,
constraint FK5YWV1DMXCM2VSQUEB7RHQ3JK9
foreign key (IMAGES_ID) references IMAGE,
constraint FKOWCPUCV45OX8GT28TXGVHF1AA
foreign key (GAME_ID) references GAME
GAME_ID BIGINT NOT NULL,
IMAGES_ID BIGINT NOT NULL
CONSTRAINT UKBDE7M3TKHIEEYBINM2ED0B6X1
UNIQUE,
CONSTRAINT FK5YWV1DMXCM2VSQUEB7RHQ3JK9
FOREIGN KEY (IMAGES_ID) REFERENCES IMAGE,
CONSTRAINT FKOWCPUCV45OX8GT28TXGVHF1AA
FOREIGN KEY (GAME_ID) REFERENCES GAME
);
create table GAME_KEYWORDS
CREATE TABLE GAME_KEYWORDS
(
GAME_ID BIGINT not null,
GAME_ID BIGINT NOT NULL,
KEYWORDS CHARACTER VARYING(255),
constraint FKMVF6HNJ7ROMQQM2EX70A9NVAC
foreign key (GAME_ID) references GAME
CONSTRAINT FKMVF6HNJ7ROMQQM2EX70A9NVAC
FOREIGN KEY (GAME_ID) REFERENCES GAME
);
create table GAME_PERSPECTIVES
CREATE TABLE GAME_PERSPECTIVES
(
GAME_ID BIGINT not null,
GAME_ID BIGINT NOT NULL,
PERSPECTIVES TINYINT,
constraint FKHUEENG29Y1GHBRDI5QHGUXH6E
foreign key (GAME_ID) references GAME,
check ("PERSPECTIVES" BETWEEN 0 AND 7)
CONSTRAINT FKHUEENG29Y1GHBRDI5QHGUXH6E
FOREIGN KEY (GAME_ID) REFERENCES GAME,
CHECK ("PERSPECTIVES" BETWEEN 0 AND 7)
);
create table GAME_PUBLISHERS
CREATE TABLE GAME_PUBLISHERS
(
GAME_ID BIGINT not null,
PUBLISHERS_ID BIGINT not null,
constraint FK49R2KB61LIJ54BQB4VNTST97N
foreign key (GAME_ID) references GAME,
constraint FKNGLD5ESGRBRH95J5BJF0HEF85
foreign key (PUBLISHERS_ID) references COMPANY
GAME_ID BIGINT NOT NULL,
PUBLISHERS_ID BIGINT NOT NULL,
CONSTRAINT FK49R2KB61LIJ54BQB4VNTST97N
FOREIGN KEY (GAME_ID) REFERENCES GAME,
CONSTRAINT FKNGLD5ESGRBRH95J5BJF0HEF85
FOREIGN KEY (PUBLISHERS_ID) REFERENCES COMPANY
);
create table GAME_THEMES
CREATE TABLE GAME_THEMES
(
GAME_ID BIGINT not null,
GAME_ID BIGINT NOT NULL,
THEMES TINYINT,
constraint FKRV351JXLIOY0A17Y5BBJJ6FW4
foreign key (GAME_ID) references GAME,
check ("THEMES" BETWEEN 0 AND 22)
CONSTRAINT FKRV351JXLIOY0A17Y5BBJJ6FW4
FOREIGN KEY (GAME_ID) REFERENCES GAME,
CHECK ("THEMES" BETWEEN 0 AND 22)
);
create table GAME_VIDEO_URLS
CREATE TABLE GAME_VIDEO_URLS
(
GAME_ID BIGINT not null,
GAME_ID BIGINT NOT NULL,
VIDEO_URLS BINARY VARYING(255),
constraint FKJKKWO8WDS086AS7B2KSLSVKM6
foreign key (GAME_ID) references GAME
CONSTRAINT FKJKKWO8WDS086AS7B2KSLSVKM6
FOREIGN KEY (GAME_ID) REFERENCES GAME
);
create table LIBRARY_DIRECTORIES
CREATE TABLE LIBRARY_DIRECTORIES
(
LIBRARY_ID BIGINT not null,
DIRECTORIES_ID BIGINT not null
constraint UKB5UM4CADBNC6UC8DVOMO81N5F
unique,
constraint FKFNCKIU58I9L89MLXV388DY13B
foreign key (LIBRARY_ID) references LIBRARY,
constraint FKJDXS58Q1IRTU0IDP6DXJHWAPM
foreign key (DIRECTORIES_ID) references DIRECTORY_MAPPING
LIBRARY_ID BIGINT NOT NULL,
DIRECTORIES_ID BIGINT NOT NULL
CONSTRAINT UKB5UM4CADBNC6UC8DVOMO81N5F
UNIQUE,
CONSTRAINT FKFNCKIU58I9L89MLXV388DY13B
FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY,
CONSTRAINT FKJDXS58Q1IRTU0IDP6DXJHWAPM
FOREIGN KEY (DIRECTORIES_ID) REFERENCES DIRECTORY_MAPPING
);
create table LIBRARY_GAMES
CREATE TABLE LIBRARY_GAMES
(
LIBRARY_ID BIGINT not null,
GAMES_ID BIGINT not null
constraint UK3E4VB9NQXPY27VMTA27GU5FY8
unique,
constraint FK6C71EEDM0I2N1JXDE9BOBWG5M
foreign key (LIBRARY_ID) references LIBRARY,
constraint FKDKKKES3DAY0WJ1QMV42KMMFDK
foreign key (GAMES_ID) references GAME
LIBRARY_ID BIGINT NOT NULL,
GAMES_ID BIGINT NOT NULL
CONSTRAINT UK3E4VB9NQXPY27VMTA27GU5FY8
UNIQUE,
CONSTRAINT FK6C71EEDM0I2N1JXDE9BOBWG5M
FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY,
CONSTRAINT FKDKKKES3DAY0WJ1QMV42KMMFDK
FOREIGN KEY (GAMES_ID) REFERENCES GAME
);
create table LIBRARY_UNMATCHED_PATHS
CREATE TABLE LIBRARY_UNMATCHED_PATHS
(
LIBRARY_ID BIGINT not null,
LIBRARY_ID BIGINT NOT NULL,
UNMATCHED_PATHS CHARACTER VARYING(255),
constraint FKSJ51WC2LBNNXY0LKLWELI6VSB
foreign key (LIBRARY_ID) references LIBRARY
CONSTRAINT FKSJ51WC2LBNNXY0LKLWELI6VSB
FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY
);
create table PLUGIN_CONFIG
CREATE TABLE PLUGIN_CONFIG
(
"key" CHARACTER VARYING(255) not null,
PLUGIN_ID CHARACTER VARYING(255) not null,
"key" CHARACTER VARYING(255) NOT NULL,
PLUGIN_ID CHARACTER VARYING(255) NOT NULL,
"value" CHARACTER VARYING(255),
primary key ("key", PLUGIN_ID)
PRIMARY KEY ("key", PLUGIN_ID)
);
create table PLUGIN_MANAGEMENT_ENTRY
CREATE TABLE PLUGIN_MANAGEMENT_ENTRY
(
PLUGIN_ID CHARACTER VARYING(255) not null
primary key,
ENABLED BOOLEAN not null,
PRIORITY INTEGER not null,
PLUGIN_ID CHARACTER VARYING(255) NOT NULL
PRIMARY KEY,
ENABLED BOOLEAN NOT NULL,
PRIORITY INTEGER NOT NULL,
TRUST_LEVEL TINYINT,
check ("TRUST_LEVEL" BETWEEN 0 AND 4)
CHECK ("TRUST_LEVEL" BETWEEN 0 AND 4)
);
create table GAME_ORIGINAL_IDS
CREATE TABLE GAME_ORIGINAL_IDS
(
GAME_ID BIGINT not null,
GAME_ID BIGINT NOT NULL,
ORIGINAL_IDS CHARACTER VARYING(255),
ORIGINAL_IDS_KEY CHARACTER VARYING(255) not null,
primary key (GAME_ID, ORIGINAL_IDS_KEY),
constraint FK1CSD5QD7VJT7BTTA3G7HGYBUX
foreign key (GAME_ID) references GAME,
constraint FKMT0XWLPWPU9NP0Q289JBAHJRY
foreign key (ORIGINAL_IDS_KEY) references PLUGIN_MANAGEMENT_ENTRY
ORIGINAL_IDS_KEY CHARACTER VARYING(255) NOT NULL,
PRIMARY KEY (GAME_ID, ORIGINAL_IDS_KEY),
CONSTRAINT FK1CSD5QD7VJT7BTTA3G7HGYBUX
FOREIGN KEY (GAME_ID) REFERENCES GAME,
CONSTRAINT FKMT0XWLPWPU9NP0Q289JBAHJRY
FOREIGN KEY (ORIGINAL_IDS_KEY) REFERENCES PLUGIN_MANAGEMENT_ENTRY
);
create table USERS
CREATE TABLE USERS
(
ID BIGINT not null
primary key,
ID BIGINT NOT NULL
PRIMARY KEY,
EMAIL CHARACTER VARYING(255)
constraint UK6DOTKOTT2KJSP8VW4D0M25FB7
unique,
EMAIL_CONFIRMED BOOLEAN not null,
ENABLED BOOLEAN not null,
CONSTRAINT UK6DOTKOTT2KJSP8VW4D0M25FB7
UNIQUE,
EMAIL_CONFIRMED BOOLEAN NOT NULL,
ENABLED BOOLEAN NOT NULL,
OIDC_PROVIDER_ID CHARACTER VARYING(255),
PASSWORD CHARACTER VARYING(255),
USERNAME CHARACTER VARYING(255)
constraint UKR43AF9AP4EDM43MMTQ01ODDJ6
unique,
CONSTRAINT UKR43AF9AP4EDM43MMTQ01ODDJ6
UNIQUE,
AVATAR_ID BIGINT
constraint UKRSULCN2GYNJY3CDDPWMOSV881
unique,
constraint FK19LFLPG5SEIS4DWRM2LVJLXFV
foreign key (AVATAR_ID) references IMAGE
CONSTRAINT UKRSULCN2GYNJY3CDDPWMOSV881
UNIQUE,
CONSTRAINT FK19LFLPG5SEIS4DWRM2LVJLXFV
FOREIGN KEY (AVATAR_ID) REFERENCES IMAGE
);
create table GAME_FIELD_SOURCE
CREATE TABLE GAME_FIELD_SOURCE
(
DTYPE CHARACTER VARYING(31) not null,
ID BIGINT not null
primary key,
DTYPE CHARACTER VARYING(31) NOT NULL,
ID BIGINT NOT NULL
PRIMARY KEY,
PLUGIN_PLUGIN_ID CHARACTER VARYING(255),
USER_ID BIGINT,
constraint FKNJC4QSS5APFHTPWP42OAEAL5G
foreign key (PLUGIN_PLUGIN_ID) references PLUGIN_MANAGEMENT_ENTRY,
constraint FKSR1BGTX5XJVMAL7FEFGL982TP
foreign key (USER_ID) references USERS
CONSTRAINT FKNJC4QSS5APFHTPWP42OAEAL5G
FOREIGN KEY (PLUGIN_PLUGIN_ID) REFERENCES PLUGIN_MANAGEMENT_ENTRY,
CONSTRAINT FKSR1BGTX5XJVMAL7FEFGL982TP
FOREIGN KEY (USER_ID) REFERENCES USERS
);
create table GAME_FIELD_METADATA
CREATE TABLE GAME_FIELD_METADATA
(
ID BIGINT not null
primary key,
ID BIGINT NOT NULL
PRIMARY KEY,
UPDATED_AT TIMESTAMP WITH TIME ZONE,
SOURCE_ID BIGINT
constraint UKHW6U2Y9FLWPTI57QB7K0P27BL
unique,
constraint FKQ4RC409TP8FUBTTM733PMJD8F
foreign key (SOURCE_ID) references GAME_FIELD_SOURCE
CONSTRAINT UKHW6U2Y9FLWPTI57QB7K0P27BL
UNIQUE,
CONSTRAINT FKQ4RC409TP8FUBTTM733PMJD8F
FOREIGN KEY (SOURCE_ID) REFERENCES GAME_FIELD_SOURCE
);
create table GAME_FIELDS
CREATE TABLE GAME_FIELDS
(
GAME_ID BIGINT not null,
FIELDS_ID BIGINT not null
constraint UK1L5OAH0UOOUV4V5A9P0PAK77X
unique,
FIELDS_KEY CHARACTER VARYING(255) not null,
primary key (GAME_ID, FIELDS_KEY),
constraint FKLNEPI7YWCI86YH21KO9WD9PYF
foreign key (GAME_ID) references GAME,
constraint FKT8FLOFDAPX5M746S5LW54C5B3
foreign key (FIELDS_ID) references GAME_FIELD_METADATA
GAME_ID BIGINT NOT NULL,
FIELDS_ID BIGINT NOT NULL
CONSTRAINT UK1L5OAH0UOOUV4V5A9P0PAK77X
UNIQUE,
FIELDS_KEY CHARACTER VARYING(255) NOT NULL,
PRIMARY KEY (GAME_ID, FIELDS_KEY),
CONSTRAINT FKLNEPI7YWCI86YH21KO9WD9PYF
FOREIGN KEY (GAME_ID) REFERENCES GAME,
CONSTRAINT FKT8FLOFDAPX5M746S5LW54C5B3
FOREIGN KEY (FIELDS_ID) REFERENCES GAME_FIELD_METADATA
);
create table TOKEN
CREATE TABLE TOKEN
(
SECRET CHARACTER VARYING(255) not null
primary key,
SECRET CHARACTER VARYING(255) NOT NULL
PRIMARY KEY,
CREATED_ON TIMESTAMP WITH TIME ZONE,
PAYLOAD CHARACTER VARYING(255),
TYPE CHARACTER VARYING(255),
CREATOR_ID BIGINT,
constraint FKGHOIALAPTI5JFEJ506JBB1O8Y
foreign key (CREATOR_ID) references USERS
on delete cascade
CONSTRAINT FKGHOIALAPTI5JFEJ506JBB1O8Y
FOREIGN KEY (CREATOR_ID) REFERENCES USERS
ON DELETE CASCADE
);
create table USER_PREFERENCE
CREATE TABLE USER_PREFERENCE
(
"key" CHARACTER VARYING(255) not null,
USER_ID BIGINT not null,
"key" CHARACTER VARYING(255) NOT NULL,
USER_ID BIGINT NOT NULL,
"value" CHARACTER VARYING(255),
primary key ("key", USER_ID)
PRIMARY KEY ("key", USER_ID)
);
create table USER_ROLES
CREATE TABLE USER_ROLES
(
USER_ID BIGINT not null,
USER_ID BIGINT NOT NULL,
ROLES ENUM ('ADMIN', 'SUPERADMIN', 'USER'),
constraint FKHFH9DX7W3UBF1CO1VDEV94G3F
foreign key (USER_ID) references USERS
CONSTRAINT FKHFH9DX7W3UBF1CO1VDEV94G3F
FOREIGN KEY (USER_ID) REFERENCES USERS
);
CREATE TABLE JOB_RUN_RESULT
(
ID BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,
JOB_NAME VARCHAR(255),
STARTED_AT TIMESTAMP,
FINISHED_AT TIMESTAMP,
STATUS VARCHAR(255),
MESSAGE VARCHAR(255)
);
@@ -1,4 +1,4 @@
-- Flyway Migration: V2.1.0
-- Flyway Migration: V2.1.0 (Part 1)
-- Purpose:
-- 1. Drop unique constraints on GAME.COVER_IMAGE_ID and GAME.HEADER_IMAGE_ID
-- 2. Rename all remaining UK*/FK* constraints to human-readable names
@@ -0,0 +1,42 @@
-- Flyway Migration: V2.1.0 (Part 2)
-- Purpose:
-- 1. Create tables for the game requests feature
/******************************************************************************************
* 1. Create new sequence
******************************************************************************************/
CREATE SEQUENCE GAME_REQUEST_SEQ
INCREMENT BY 50;
/******************************************************************************************
* 2. Create new tables
******************************************************************************************/
CREATE TABLE GAME_REQUEST
(
ID BIGINT NOT NULL PRIMARY KEY,
TITLE VARCHAR(255) NOT NULL,
RELEASE TIMESTAMP NOT NULL,
STATUS VARCHAR(255) NOT NULL,
REQUESTER_ID BIGINT,
LINKED_GAME_ID BIGINT,
CREATED_AT TIMESTAMP NOT NULL,
UPDATED_AT TIMESTAMP NOT NULL
);
CREATE TABLE GAME_REQUEST_VOTERS
(
GAME_REQUEST_ID BIGINT NOT NULL,
VOTERS_ID BIGINT NOT NULL,
PRIMARY KEY (GAME_REQUEST_ID, VOTERS_ID)
);
ALTER TABLE GAME_REQUEST
ADD CONSTRAINT FK_GAMEREQUEST_ON_REQUESTER FOREIGN KEY (REQUESTER_ID) REFERENCES USERS (ID) ON DELETE SET NULL;
ALTER TABLE GAME_REQUEST_VOTERS
ADD CONSTRAINT FK_GAMREQVOT_ON_GAME_REQUEST FOREIGN KEY (GAME_REQUEST_ID) REFERENCES GAME_REQUEST (ID) ON DELETE CASCADE;
ALTER TABLE GAME_REQUEST_VOTERS
ADD CONSTRAINT FK_GAMREQVOT_ON_USER FOREIGN KEY (VOTERS_ID) REFERENCES USERS (ID);
-- End of migration