mirror of
https://github.com/BrenBroZAYT/gameyfin.git
synced 2026-06-13 16:40:01 +00:00
Refactor migrations to account for 2.1-preview users
This commit is contained in:
+75
-85
@@ -1,7 +1,32 @@
|
|||||||
-- Flyway Migration: V2.1.0 (Part 1)
|
-- Flyway Migration: V2.1.0 (Part 1)
|
||||||
-- Purpose:
|
-- Purpose:
|
||||||
-- 1. Drop unique constraints on GAME.COVER_IMAGE_ID and GAME.HEADER_IMAGE_ID
|
-- 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
|
-- 2. Rename all remaining UK*/FK* constraints to human-readable names (idempotent)
|
||||||
|
-- This version has been updated to be resilient: if a hashed constraint name
|
||||||
|
-- does not exist (e.g. on legacy schemas where Hibernate never created it, or
|
||||||
|
-- on future fresh installs where the friendly name may already be present),
|
||||||
|
-- the rename attempt is ignored instead of failing the migration.
|
||||||
|
|
||||||
|
/******************************************************************************************
|
||||||
|
* Helper: Idempotent constraint rename for H2
|
||||||
|
* H2 does not support RENAME CONSTRAINT IF EXISTS, so we create a Java alias that
|
||||||
|
* executes a rename and suppresses error 90057 (constraint not found).
|
||||||
|
* NOTE: Do not declare method as public static; H2 wraps it and adds modifiers itself.
|
||||||
|
******************************************************************************************/
|
||||||
|
CREATE ALIAS IF NOT EXISTS RENAME_CONSTRAINT_IF_EXISTS AS
|
||||||
|
$$
|
||||||
|
import java.sql.*;
|
||||||
|
@CODE
|
||||||
|
void run(Connection conn, String table, String oldName, String newName) throws SQLException {
|
||||||
|
try (Statement st = conn.createStatement()) {
|
||||||
|
st.execute("ALTER TABLE " + table + " RENAME CONSTRAINT " + oldName + " TO " + newName);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
if (e.getErrorCode() != 90057) { // ignore only 'constraint not found'
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$$;
|
||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
* 1. Drop the two unwanted unique constraints on GAME
|
* 1. Drop the two unwanted unique constraints on GAME
|
||||||
@@ -13,109 +38,74 @@ ALTER TABLE GAME
|
|||||||
-- HEADER_IMAGE_ID unique
|
-- HEADER_IMAGE_ID unique
|
||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
* 2. Rename remaining UNIQUE constraints (UK*)
|
* 2. Rename remaining UNIQUE constraints (UK*) (tolerant)
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
ALTER TABLE COMPANY
|
CALL RENAME_CONSTRAINT_IF_EXISTS('COMPANY', 'UK4UCNYHR8I0URHWDUDFAHKOB9E', 'UQ_COMPANY_NAME_TYPE');
|
||||||
RENAME CONSTRAINT UK4UCNYHR8I0URHWDUDFAHKOB9E TO UQ_COMPANY_NAME_TYPE;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('DIRECTORY_MAPPING', 'UKJ3GSATFAHEWFOLSEAJ29O3KYT',
|
||||||
ALTER TABLE DIRECTORY_MAPPING
|
'UQ_DIRECTORY_MAPPING_INTERNAL_PATH');
|
||||||
RENAME CONSTRAINT UKJ3GSATFAHEWFOLSEAJ29O3KYT TO UQ_DIRECTORY_MAPPING_INTERNAL_PATH;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME', 'UK4WXN9FPXFQ8QXPSB7FY0O3NOA', 'UQ_GAME_PATH');
|
||||||
ALTER TABLE GAME
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_IMAGES', 'UKBDE7M3TKHIEEYBINM2ED0B6X1', 'UQ_GAME_IMAGES_IMAGE_ID');
|
||||||
RENAME CONSTRAINT UK4WXN9FPXFQ8QXPSB7FY0O3NOA TO UQ_GAME_PATH;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('LIBRARY_DIRECTORIES', 'UKB5UM4CADBNC6UC8DVOMO81N5F',
|
||||||
ALTER TABLE GAME_IMAGES
|
'UQ_LIBRARY_DIRECTORIES_DIRECTORY_ID');
|
||||||
RENAME CONSTRAINT UKBDE7M3TKHIEEYBINM2ED0B6X1 TO UQ_GAME_IMAGES_IMAGE_ID;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('LIBRARY_GAMES', 'UK3E4VB9NQXPY27VMTA27GU5FY8', 'UQ_LIBRARY_GAMES_GAME_ID');
|
||||||
ALTER TABLE LIBRARY_DIRECTORIES
|
CALL RENAME_CONSTRAINT_IF_EXISTS('USERS', 'UK6DOTKOTT2KJSP8VW4D0M25FB7', 'UQ_USERS_EMAIL');
|
||||||
RENAME CONSTRAINT UKB5UM4CADBNC6UC8DVOMO81N5F TO UQ_LIBRARY_DIRECTORIES_DIRECTORY_ID;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('USERS', 'UKR43AF9AP4EDM43MMTQ01ODDJ6', 'UQ_USERS_USERNAME');
|
||||||
ALTER TABLE LIBRARY_GAMES
|
CALL RENAME_CONSTRAINT_IF_EXISTS('USERS', 'UKRSULCN2GYNJY3CDDPWMOSV881', 'UQ_USERS_AVATAR_ID');
|
||||||
RENAME CONSTRAINT UK3E4VB9NQXPY27VMTA27GU5FY8 TO UQ_LIBRARY_GAMES_GAME_ID;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_FIELD_METADATA', 'UKHW6U2Y9FLWPTI57QB7K0P27BL',
|
||||||
ALTER TABLE USERS
|
'UQ_GAME_FIELD_METADATA_SOURCE_ID');
|
||||||
RENAME CONSTRAINT UK6DOTKOTT2KJSP8VW4D0M25FB7 TO UQ_USERS_EMAIL;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_FIELDS', 'UK1L5OAH0UOOUV4V5A9P0PAK77X', 'UQ_GAME_FIELDS_FIELD_METADATA_ID');
|
||||||
ALTER TABLE USERS
|
|
||||||
RENAME CONSTRAINT UKR43AF9AP4EDM43MMTQ01ODDJ6 TO UQ_USERS_USERNAME;
|
|
||||||
ALTER TABLE USERS
|
|
||||||
RENAME CONSTRAINT UKRSULCN2GYNJY3CDDPWMOSV881 TO UQ_USERS_AVATAR_ID;
|
|
||||||
ALTER TABLE GAME_FIELD_METADATA
|
|
||||||
RENAME CONSTRAINT UKHW6U2Y9FLWPTI57QB7K0P27BL TO UQ_GAME_FIELD_METADATA_SOURCE_ID;
|
|
||||||
ALTER TABLE GAME_FIELDS
|
|
||||||
RENAME CONSTRAINT UK1L5OAH0UOOUV4V5A9P0PAK77X TO UQ_GAME_FIELDS_FIELD_METADATA_ID;
|
|
||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
* 3. Rename FOREIGN KEY constraints (FK*)
|
* 3. Rename FOREIGN KEY constraints (FK*) (tolerant)
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
ALTER TABLE GAME
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME', 'FK6CVB43REAYSNYPI0XDY6HQTVF', 'FK_GAME_COVER_IMAGE');
|
||||||
RENAME CONSTRAINT FK6CVB43REAYSNYPI0XDY6HQTVF TO FK_GAME_COVER_IMAGE;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME', 'FK8N86NDPGKMOO7YOLX6HL8N84G', 'FK_GAME_HEADER_IMAGE');
|
||||||
ALTER TABLE GAME
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME', 'FKIUVR8XFB63T1K6T43EYYXVO2C', 'FK_GAME_LIBRARY');
|
||||||
RENAME CONSTRAINT FK8N86NDPGKMOO7YOLX6HL8N84G TO FK_GAME_HEADER_IMAGE;
|
|
||||||
ALTER TABLE GAME
|
|
||||||
RENAME CONSTRAINT FKIUVR8XFB63T1K6T43EYYXVO2C TO FK_GAME_LIBRARY;
|
|
||||||
|
|
||||||
ALTER TABLE GAME_DEVELOPERS
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_DEVELOPERS', 'FKB12PO9L2B9OJBAIHC82MM2QXB', 'FK_GAME_DEVELOPERS_COMPANY');
|
||||||
RENAME CONSTRAINT FKB12PO9L2B9OJBAIHC82MM2QXB TO FK_GAME_DEVELOPERS_COMPANY;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_DEVELOPERS', 'FKS4IJSVPIJ53DSL143XVRGBS09', 'FK_GAME_DEVELOPERS_GAME');
|
||||||
ALTER TABLE GAME_DEVELOPERS
|
|
||||||
RENAME CONSTRAINT FKS4IJSVPIJ53DSL143XVRGBS09 TO FK_GAME_DEVELOPERS_GAME;
|
|
||||||
|
|
||||||
ALTER TABLE GAME_FEATURES
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_FEATURES', 'FK63XLTCT60SCIMPM06K8BHBE4A', 'FK_GAME_FEATURES_GAME');
|
||||||
RENAME CONSTRAINT FK63XLTCT60SCIMPM06K8BHBE4A TO FK_GAME_FEATURES_GAME;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_GENRES', 'FKDTSX09YOPD98E0LUEWRUSJD9E', 'FK_GAME_GENRES_GAME');
|
||||||
ALTER TABLE GAME_GENRES
|
|
||||||
RENAME CONSTRAINT FKDTSX09YOPD98E0LUEWRUSJD9E TO FK_GAME_GENRES_GAME;
|
|
||||||
|
|
||||||
ALTER TABLE GAME_IMAGES
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_IMAGES', 'FK5YWV1DMXCM2VSQUEB7RHQ3JK9', 'FK_GAME_IMAGES_IMAGE');
|
||||||
RENAME CONSTRAINT FK5YWV1DMXCM2VSQUEB7RHQ3JK9 TO FK_GAME_IMAGES_IMAGE;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_IMAGES', 'FKOWCPUCV45OX8GT28TXGVHF1AA', 'FK_GAME_IMAGES_GAME');
|
||||||
ALTER TABLE GAME_IMAGES
|
|
||||||
RENAME CONSTRAINT FKOWCPUCV45OX8GT28TXGVHF1AA TO FK_GAME_IMAGES_GAME;
|
|
||||||
|
|
||||||
ALTER TABLE GAME_KEYWORDS
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_KEYWORDS', 'FKMVF6HNJ7ROMQQM2EX70A9NVAC', 'FK_GAME_KEYWORDS_GAME');
|
||||||
RENAME CONSTRAINT FKMVF6HNJ7ROMQQM2EX70A9NVAC TO FK_GAME_KEYWORDS_GAME;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_PERSPECTIVES', 'FKHUEENG29Y1GHBRDI5QHGUXH6E', 'FK_GAME_PERSPECTIVES_GAME');
|
||||||
ALTER TABLE GAME_PERSPECTIVES
|
|
||||||
RENAME CONSTRAINT FKHUEENG29Y1GHBRDI5QHGUXH6E TO FK_GAME_PERSPECTIVES_GAME;
|
|
||||||
|
|
||||||
ALTER TABLE GAME_PUBLISHERS
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_PUBLISHERS', 'FK49R2KB61LIJ54BQB4VNTST97N', 'FK_GAME_PUBLISHERS_GAME');
|
||||||
RENAME CONSTRAINT FK49R2KB61LIJ54BQB4VNTST97N TO FK_GAME_PUBLISHERS_GAME;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_PUBLISHERS', 'FKNGLD5ESGRBRH95J5BJF0HEF85', 'FK_GAME_PUBLISHERS_COMPANY');
|
||||||
ALTER TABLE GAME_PUBLISHERS
|
|
||||||
RENAME CONSTRAINT FKNGLD5ESGRBRH95J5BJF0HEF85 TO FK_GAME_PUBLISHERS_COMPANY;
|
|
||||||
|
|
||||||
ALTER TABLE GAME_THEMES
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_THEMES', 'FKRV351JXLIOY0A17Y5BBJJ6FW4', 'FK_GAME_THEMES_GAME');
|
||||||
RENAME CONSTRAINT FKRV351JXLIOY0A17Y5BBJJ6FW4 TO FK_GAME_THEMES_GAME;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_VIDEO_URLS', 'FKJKKWO8WDS086AS7B2KSLSVKM6', 'FK_GAME_VIDEO_URLS_GAME');
|
||||||
ALTER TABLE GAME_VIDEO_URLS
|
|
||||||
RENAME CONSTRAINT FKJKKWO8WDS086AS7B2KSLSVKM6 TO FK_GAME_VIDEO_URLS_GAME;
|
|
||||||
|
|
||||||
ALTER TABLE LIBRARY_DIRECTORIES
|
CALL RENAME_CONSTRAINT_IF_EXISTS('LIBRARY_DIRECTORIES', 'FKFNCKIU58I9L89MLXV388DY13B',
|
||||||
RENAME CONSTRAINT FKFNCKIU58I9L89MLXV388DY13B TO FK_LIBRARY_DIRECTORIES_LIBRARY;
|
'FK_LIBRARY_DIRECTORIES_LIBRARY');
|
||||||
ALTER TABLE LIBRARY_DIRECTORIES
|
CALL RENAME_CONSTRAINT_IF_EXISTS('LIBRARY_DIRECTORIES', 'FKJDXS58Q1IRTU0IDP6DXJHWAPM',
|
||||||
RENAME CONSTRAINT FKJDXS58Q1IRTU0IDP6DXJHWAPM TO FK_LIBRARY_DIRECTORIES_DIRECTORY_MAPPING;
|
'FK_LIBRARY_DIRECTORIES_DIRECTORY_MAPPING');
|
||||||
|
|
||||||
ALTER TABLE LIBRARY_GAMES
|
CALL RENAME_CONSTRAINT_IF_EXISTS('LIBRARY_GAMES', 'FK6C71EEDM0I2N1JXDE9BOBWG5M', 'FK_LIBRARY_GAMES_LIBRARY');
|
||||||
RENAME CONSTRAINT FK6C71EEDM0I2N1JXDE9BOBWG5M TO FK_LIBRARY_GAMES_LIBRARY;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('LIBRARY_GAMES', 'FKDKKKES3DAY0WJ1QMV42KMMFDK', 'FK_LIBRARY_GAMES_GAME');
|
||||||
ALTER TABLE LIBRARY_GAMES
|
|
||||||
RENAME CONSTRAINT FKDKKKES3DAY0WJ1QMV42KMMFDK TO FK_LIBRARY_GAMES_GAME;
|
|
||||||
|
|
||||||
ALTER TABLE LIBRARY_UNMATCHED_PATHS
|
CALL RENAME_CONSTRAINT_IF_EXISTS('LIBRARY_UNMATCHED_PATHS', 'FKSJ51WC2LBNNXY0LKLWELI6VSB',
|
||||||
RENAME CONSTRAINT FKSJ51WC2LBNNXY0LKLWELI6VSB TO FK_LIBRARY_UNMATCHED_PATHS_LIBRARY;
|
'FK_LIBRARY_UNMATCHED_PATHS_LIBRARY');
|
||||||
|
|
||||||
ALTER TABLE GAME_ORIGINAL_IDS
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_ORIGINAL_IDS', 'FK1CSD5QD7VJT7BTTA3G7HGYBUX', 'FK_GAME_ORIGINAL_IDS_GAME');
|
||||||
RENAME CONSTRAINT FK1CSD5QD7VJT7BTTA3G7HGYBUX TO FK_GAME_ORIGINAL_IDS_GAME;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_ORIGINAL_IDS', 'FKMT0XWLPWPU9NP0Q289JBAHJRY', 'FK_GAME_ORIGINAL_IDS_PLUGIN');
|
||||||
ALTER TABLE GAME_ORIGINAL_IDS
|
|
||||||
RENAME CONSTRAINT FKMT0XWLPWPU9NP0Q289JBAHJRY TO FK_GAME_ORIGINAL_IDS_PLUGIN;
|
|
||||||
|
|
||||||
ALTER TABLE USERS
|
CALL RENAME_CONSTRAINT_IF_EXISTS('USERS', 'FK19LFLPG5SEIS4DWRM2LVJLXFV', 'FK_USERS_AVATAR_IMAGE');
|
||||||
RENAME CONSTRAINT FK19LFLPG5SEIS4DWRM2LVJLXFV TO FK_USERS_AVATAR_IMAGE;
|
|
||||||
|
|
||||||
ALTER TABLE GAME_FIELD_SOURCE
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_FIELD_SOURCE', 'FKNJC4QSS5APFHTPWP42OAEAL5G', 'FK_GAME_FIELD_SOURCE_PLUGIN');
|
||||||
RENAME CONSTRAINT FKNJC4QSS5APFHTPWP42OAEAL5G TO FK_GAME_FIELD_SOURCE_PLUGIN;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_FIELD_SOURCE', 'FKSR1BGTX5XJVMAL7FEFGL982TP', 'FK_GAME_FIELD_SOURCE_USER');
|
||||||
ALTER TABLE GAME_FIELD_SOURCE
|
|
||||||
RENAME CONSTRAINT FKSR1BGTX5XJVMAL7FEFGL982TP TO FK_GAME_FIELD_SOURCE_USER;
|
|
||||||
|
|
||||||
ALTER TABLE GAME_FIELD_METADATA
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_FIELD_METADATA', 'FKQ4RC409TP8FUBTTM733PMJD8F', 'FK_GAME_FIELD_METADATA_SOURCE');
|
||||||
RENAME CONSTRAINT FKQ4RC409TP8FUBTTM733PMJD8F TO FK_GAME_FIELD_METADATA_SOURCE;
|
|
||||||
|
|
||||||
ALTER TABLE GAME_FIELDS
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_FIELDS', 'FKLNEPI7YWCI86YH21KO9WD9PYF', 'FK_GAME_FIELDS_GAME');
|
||||||
RENAME CONSTRAINT FKLNEPI7YWCI86YH21KO9WD9PYF TO FK_GAME_FIELDS_GAME;
|
CALL RENAME_CONSTRAINT_IF_EXISTS('GAME_FIELDS', 'FKT8FLOFDAPX5M746S5LW54C5B3', 'FK_GAME_FIELDS_METADATA');
|
||||||
ALTER TABLE GAME_FIELDS
|
|
||||||
RENAME CONSTRAINT FKT8FLOFDAPX5M746S5LW54C5B3 TO FK_GAME_FIELDS_METADATA;
|
|
||||||
|
|
||||||
ALTER TABLE TOKEN
|
CALL RENAME_CONSTRAINT_IF_EXISTS('TOKEN', 'FKGHOIALAPTI5JFEJ506JBB1O8Y', 'FK_TOKEN_CREATOR_USER');
|
||||||
RENAME CONSTRAINT FKGHOIALAPTI5JFEJ506JBB1O8Y TO FK_TOKEN_CREATOR_USER;
|
|
||||||
|
|
||||||
ALTER TABLE USER_ROLES
|
CALL RENAME_CONSTRAINT_IF_EXISTS('USER_ROLES', 'FKHFH9DX7W3UBF1CO1VDEV94G3F', 'FK_USER_ROLES_USER');
|
||||||
RENAME CONSTRAINT FKHFH9DX7W3UBF1CO1VDEV94G3F TO FK_USER_ROLES_USER;
|
|
||||||
|
|
||||||
-- End of migration
|
-- End of migration
|
||||||
|
|||||||
@@ -5,13 +5,13 @@
|
|||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
* 1. Create new sequence
|
* 1. Create new sequence
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
CREATE SEQUENCE GAME_REQUEST_SEQ
|
CREATE SEQUENCE IF NOT EXISTS GAME_REQUEST_SEQ
|
||||||
INCREMENT BY 50;
|
INCREMENT BY 50;
|
||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
* 2. Create new tables
|
* 2. Create new tables
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
CREATE TABLE GAME_REQUEST
|
CREATE TABLE IF NOT EXISTS GAME_REQUEST
|
||||||
(
|
(
|
||||||
ID BIGINT NOT NULL PRIMARY KEY,
|
ID BIGINT NOT NULL PRIMARY KEY,
|
||||||
TITLE VARCHAR(255) NOT NULL,
|
TITLE VARCHAR(255) NOT NULL,
|
||||||
@@ -20,23 +20,22 @@ CREATE TABLE GAME_REQUEST
|
|||||||
REQUESTER_ID BIGINT,
|
REQUESTER_ID BIGINT,
|
||||||
LINKED_GAME_ID BIGINT,
|
LINKED_GAME_ID BIGINT,
|
||||||
CREATED_AT TIMESTAMP NOT NULL,
|
CREATED_AT TIMESTAMP NOT NULL,
|
||||||
UPDATED_AT TIMESTAMP NOT NULL
|
UPDATED_AT TIMESTAMP NOT NULL,
|
||||||
|
CONSTRAINT FK_GAMEREQUEST_ON_REQUESTER
|
||||||
|
FOREIGN KEY (REQUESTER_ID) REFERENCES USERS
|
||||||
|
ON DELETE SET NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE GAME_REQUEST_VOTERS
|
CREATE TABLE IF NOT EXISTS GAME_REQUEST_VOTERS
|
||||||
(
|
(
|
||||||
GAME_REQUEST_ID BIGINT NOT NULL,
|
GAME_REQUEST_ID BIGINT NOT NULL,
|
||||||
VOTERS_ID BIGINT NOT NULL,
|
VOTERS_ID BIGINT NOT NULL,
|
||||||
PRIMARY KEY (GAME_REQUEST_ID, VOTERS_ID)
|
PRIMARY KEY (GAME_REQUEST_ID, VOTERS_ID),
|
||||||
|
CONSTRAINT FK_GAMREQVOT_ON_GAME_REQUEST
|
||||||
|
FOREIGN KEY (GAME_REQUEST_ID) REFERENCES GAME_REQUEST
|
||||||
|
ON DELETE CASCADE,
|
||||||
|
CONSTRAINT FK_GAMREQVOT_ON_USER
|
||||||
|
FOREIGN KEY (VOTERS_ID) REFERENCES USERS
|
||||||
);
|
);
|
||||||
|
|
||||||
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
|
-- End of migration
|
||||||
|
|||||||
Reference in New Issue
Block a user