Add primary key to avoid issues in some mysql 8 server but still keep compatibility with others

Closes #35827

Signed-off-by: mike-pt <mike-pt@users.noreply.github.com>
This commit is contained in:
Miguel C 2025-01-07 21:26:28 +00:00 committed by GitHub
parent 696bc07103
commit ffa85cdd59
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -42,6 +42,9 @@ public class JpaUpdate25_0_0_MySQL_ConsentConstraints extends CustomKeycloakTask
" max_dates ON uc.CLIENT_ID = max_dates.CLIENT_ID" +
" AND uc.USER_ID = max_dates.USER_ID AND uc.LAST_UPDATED_DATE = max_dates.MAX_UPDATED_DATE"
));
statements.add(new RawSqlStatement(
"ALTER TABLE TEMP_USER_CONSENT_IDS ADD PRIMARY KEY (ID)"
));
statements.add(new DeleteStatement(null, null, database.correctObjectName("USER_CONSENT", Table.class))
.setWhere("ID IN (SELECT ID FROM TEMP_USER_CONSENT_IDS)"));
statements.add(new RawSqlStatement("DROP TABLE IF EXISTS TEMP_USER_CONSENT_IDS"));
@ -62,6 +65,9 @@ public class JpaUpdate25_0_0_MySQL_ConsentConstraints extends CustomKeycloakTask
" max_dates ON uc.CLIENT_STORAGE_PROVIDER = max_dates.CLIENT_STORAGE_PROVIDER" +
" AND uc.EXTERNAL_CLIENT_ID = max_dates.EXTERNAL_CLIENT_ID AND uc.USER_ID = max_dates.USER_ID AND uc.LAST_UPDATED_DATE = max_dates.MAX_UPDATED_DATE;"
));
statements.add(new RawSqlStatement(
"ALTER TABLE TEMP_USER_CONSENT_IDS2 ADD PRIMARY KEY (ID)"
));
statements.add(new DeleteStatement(null, null, database.correctObjectName("USER_CONSENT", Table.class))
.setWhere("ID IN (SELECT ID FROM TEMP_USER_CONSENT_IDS2)"));
statements.add(new RawSqlStatement("DROP TABLE IF EXISTS TEMP_USER_CONSENT_IDS2"));