diff --git a/app/src/main/resources/db/migration/V2.0.0__Initial_schema_creation.sql b/app/src/main/resources/db/migration/V2.0.0__Initial_schema_creation.sql index b9c7c17..ca1bfcf 100644 --- a/app/src/main/resources/db/migration/V2.0.0__Initial_schema_creation.sql +++ b/app/src/main/resources/db/migration/V2.0.0__Initial_schema_creation.sql @@ -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) +); \ No newline at end of file diff --git a/app/src/main/resources/db/migration/V2.1.0__Drop_game_image_uniques_and_rename_constraints.sql b/app/src/main/resources/db/migration/V2.1.0.1__Drop_game_image_uniques_and_rename_constraints.sql similarity index 99% rename from app/src/main/resources/db/migration/V2.1.0__Drop_game_image_uniques_and_rename_constraints.sql rename to app/src/main/resources/db/migration/V2.1.0.1__Drop_game_image_uniques_and_rename_constraints.sql index 9710062..910e969 100644 --- a/app/src/main/resources/db/migration/V2.1.0__Drop_game_image_uniques_and_rename_constraints.sql +++ b/app/src/main/resources/db/migration/V2.1.0.1__Drop_game_image_uniques_and_rename_constraints.sql @@ -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 diff --git a/app/src/main/resources/db/migration/V2.1.0.2__Create_game_requests_table.sql b/app/src/main/resources/db/migration/V2.1.0.2__Create_game_requests_table.sql new file mode 100644 index 0000000..970cb67 --- /dev/null +++ b/app/src/main/resources/db/migration/V2.1.0.2__Create_game_requests_table.sql @@ -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