This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch 4_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/4_1_X by this push:
     new 531344387f [SYNCOPE-1987] Improve SQL upgrade statement generation for 
Syncope 4.0 > 4.1 persistence migration (#1484)
531344387f is described below

commit 531344387f9110747682a1fc8f2d1a8e1c66c353
Author: alberto bogi <[email protected]>
AuthorDate: Mon Aug 10 08:11:40 2026 +0200

    [SYNCOPE-1987] Improve SQL upgrade statement generation for Syncope 4.0 > 
4.1 persistence migration (#1484)
---
 .../jpa/upgrade/AbstractUpgradeStatements.java     | 41 +++++++++++
 .../jpa/upgrade/GenerateUpgradeSQL.java            |  9 +--
 .../jpa/upgrade/MariaDBUpgradeStatements.java      | 74 ++++++++++++++++++++
 .../jpa/upgrade/MySQLUpgradeStatements.java        | 80 ++++++++++++++++++++++
 .../jpa/upgrade/OracleUpgradeStatements.java       | 77 +++++++++++++++++++++
 .../jpa/upgrade/PostgreSQLUpgradeStatements.java   | 43 ++++++++++++
 .../persistence/jpa/upgrade/UpgradeStatements.java | 24 +++++++
 .../jpa/upgrade/UpgradeStatementsFactory.java      | 49 +++++++++++++
 .../src/main/resources/schema-mariadb.xml          | 62 ++++++++---------
 .../src/main/resources/schema-mysql.xml            | 62 ++++++++---------
 10 files changed, 455 insertions(+), 66 deletions(-)

diff --git 
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/AbstractUpgradeStatements.java
 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/AbstractUpgradeStatements.java
new file mode 100644
index 0000000000..2c3ef60ebc
--- /dev/null
+++ 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/AbstractUpgradeStatements.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.upgrade;
+
+public abstract class AbstractUpgradeStatements implements UpgradeStatements {
+
+    protected String commonStatements() {
+        return """
+                INSERT INTO GroupTypeExtension SELECT * FROM TypeExtension;
+                INSERT INTO GroupTypeExtension_Class SELECT * FROM 
TypeExtension_AnyTypeClass;
+
+                DROP TABLE TypeExtension_AnyTypeClass;
+                DROP TABLE TypeExtension;
+                DROP TABLE SyncopeRole_DynRealm;
+                DROP TABLE DynRealmMembership;
+                DROP TABLE DynRealm;
+                DROP TABLE UDynGroupMembership;
+                DROP TABLE ADynGroupMembership;
+                DROP TABLE UDynGroupMembers;
+                DROP TABLE ADynGroupMembers;
+                DROP TABLE DynRoleMembers;
+                DROP TABLE DynRealmMembers;
+                """;
+    }
+}
diff --git 
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQL.java
 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQL.java
index 6de47930d2..ecba0b63b2 100644
--- 
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQL.java
+++ 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/GenerateUpgradeSQL.java
@@ -38,9 +38,6 @@ public class GenerateUpgradeSQL {
             UPDATE SyncopeGroup SET gManager_id=groupOwner_id;
             ALTER TABLE SyncopeGroup DROP COLUMN groupOwner_id;
 
-            INSERT INTO OIDCOpEntity SELECT id,json AS jwks,'{}' AS 
customScopes FROM OIDCJWKS;
-            DROP TABLE OIDCJWKS;
-
             DROP TABLE SyncopeRole_DynRealm;
             DROP TABLE DynRealmMembership;
             DROP TABLE DynRealm;
@@ -67,7 +64,11 @@ public class GenerateUpgradeSQL {
             // run OpenJPA's SchemaTool to get the update statements
             schemaTool.run();
 
-            out.append('\n').append(INIT_SQL_STATEMENTS).append('\n');
+            UpgradeStatements statements = 
UpgradeStatementsFactory.forDatabase(jdbcConf.getDBDictionaryInstance());
+
+            out.append('\n');
+            out.append(statements.getStatements());
+            out.append('\n');
         }
     }
 }
diff --git 
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/MariaDBUpgradeStatements.java
 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/MariaDBUpgradeStatements.java
new file mode 100644
index 0000000000..929ee41871
--- /dev/null
+++ 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/MariaDBUpgradeStatements.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.upgrade;
+
+public class MariaDBUpgradeStatements extends AbstractUpgradeStatements {
+
+    @Override
+    public String getStatements() {
+
+        String mariaDBUpgradeStatements = """
+                UPDATE SyncopeGroup SET uManager_id=userOwner_id;
+
+                SET @fk_name = (
+                    SELECT CONSTRAINT_NAME
+                    FROM information_schema.KEY_COLUMN_USAGE
+                    WHERE TABLE_SCHEMA = DATABASE()
+                      AND TABLE_NAME = 'SyncopeGroup'
+                      AND COLUMN_NAME = 'userOwner_id'
+                      AND REFERENCED_TABLE_NAME IS NOT NULL
+                    LIMIT 1
+                );
+                
+                SET @sql = CONCAT('ALTER TABLE SyncopeGroup DROP FOREIGN KEY 
`', @fk_name, '`');
+                PREPARE stmt FROM @sql;
+                EXECUTE stmt;
+                DEALLOCATE PREPARE stmt;
+                ALTER TABLE SyncopeGroup DROP COLUMN userOwner_id;
+                
+                UPDATE SyncopeGroup SET gManager_id=groupOwner_id;
+                SET @fk_name = (
+                    SELECT CONSTRAINT_NAME
+                    FROM information_schema.KEY_COLUMN_USAGE
+                    WHERE TABLE_SCHEMA = DATABASE()
+                      AND TABLE_NAME = 'SyncopeGroup'
+                      AND COLUMN_NAME = 'groupOwner_id'
+                      AND REFERENCED_TABLE_NAME IS NOT NULL
+                    LIMIT 1
+                );
+
+                SET @sql = CONCAT('ALTER TABLE SyncopeGroup DROP FOREIGN KEY 
`', @fk_name, '`');
+                PREPARE stmt FROM @sql;
+                EXECUTE stmt;
+                DEALLOCATE PREPARE stmt;
+                ALTER TABLE SyncopeGroup DROP COLUMN groupOwner_id;
+
+                DELETE FROM AccessToken;
+                ALTER TABLE AccessToken MODIFY COLUMN authorities TEXT;
+
+                INSERT INTO OIDCOpEntity (id, jwks, customScopes)
+                SELECT id, json ,'{}'
+                FROM OIDCJWKS;
+
+                DROP TABLE OIDCJWKS;
+                """;
+
+        return commonStatements() + mariaDBUpgradeStatements;
+    }
+}
diff --git 
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/MySQLUpgradeStatements.java
 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/MySQLUpgradeStatements.java
new file mode 100644
index 0000000000..c9425cbc3b
--- /dev/null
+++ 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/MySQLUpgradeStatements.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.upgrade;
+
+public class MySQLUpgradeStatements extends AbstractUpgradeStatements {
+
+    @Override
+    public String getStatements() {
+
+        String mysqlUpgradeStatements = """
+                UPDATE SyncopeGroup SET uManager_id=userOwner_id;
+
+                SET @fk_name = (
+                    SELECT CONSTRAINT_NAME
+                    FROM information_schema.KEY_COLUMN_USAGE
+                    WHERE TABLE_SCHEMA = DATABASE()
+                      AND TABLE_NAME = 'SyncopeGroup'
+                      AND COLUMN_NAME = 'userOwner_id'
+                      AND REFERENCED_TABLE_NAME IS NOT NULL
+                    LIMIT 1
+                );
+                
+                SET @sql = CONCAT(
+                        'ALTER TABLE SyncopeGroup DROP FOREIGN KEY ',
+                        @fk_name
+                           );
+                PREPARE stmt FROM @sql;
+                EXECUTE stmt;
+                DEALLOCATE PREPARE stmt;
+                ALTER TABLE SyncopeGroup DROP COLUMN userOwner_id;
+                
+                UPDATE SyncopeGroup SET gManager_id=groupOwner_id;
+                SET @fk_name = (
+                    SELECT CONSTRAINT_NAME
+                    FROM information_schema.KEY_COLUMN_USAGE
+                    WHERE TABLE_SCHEMA = DATABASE()
+                      AND TABLE_NAME = 'SyncopeGroup'
+                      AND COLUMN_NAME = 'groupOwner_id'
+                      AND REFERENCED_TABLE_NAME IS NOT NULL
+                    LIMIT 1
+                );
+
+                SET @sql = CONCAT(
+                        'ALTER TABLE SyncopeGroup DROP FOREIGN KEY ',
+                        @fk_name
+                           );
+                PREPARE stmt FROM @sql;
+                EXECUTE stmt;
+                DEALLOCATE PREPARE stmt;
+                ALTER TABLE SyncopeGroup DROP COLUMN groupOwner_id;
+
+                DELETE FROM AccessToken;
+                ALTER TABLE AccessToken MODIFY COLUMN authorities TEXT;
+
+                INSERT INTO OIDCOpEntity (id, jwks, customScopes)
+                SELECT id, CAST(json AS BINARY) ,'{}'
+                FROM OIDCJWKS;
+
+                DROP TABLE OIDCJWKS;
+                """;
+
+        return commonStatements() + mysqlUpgradeStatements;
+    }
+}
diff --git 
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/OracleUpgradeStatements.java
 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/OracleUpgradeStatements.java
new file mode 100644
index 0000000000..5f524ee8a2
--- /dev/null
+++ 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/OracleUpgradeStatements.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.upgrade;
+
+public class OracleUpgradeStatements extends AbstractUpgradeStatements {
+
+    @Override
+    public String getStatements() {
+
+        String postgreSQLUpgradeStatements = """
+                UPDATE SyncopeGroup SET uManager_id=userOwner_id;
+                ALTER TABLE SyncopeGroup DROP COLUMN userOwner_id;
+
+                UPDATE SyncopeGroup SET gManager_id=groupOwner_id;
+                ALTER TABLE SyncopeGroup DROP COLUMN groupOwner_id;
+
+                DELETE FROM ACCESSTOKEN;
+                ALTER TABLE ACCESSTOKEN MODIFY AUTHORITIES CLOB;
+                INSERT INTO OIDCOpEntity (id, jwks, customScopes)
+                      SELECT id, clob_to_blob(json),'{}' FROM OIDCJWKS;
+
+                DROP TABLE OIDCJWKS;
+                """;
+
+        return convertCLOBToBLOBFunction() + commonStatements() + 
postgreSQLUpgradeStatements;
+    }
+
+    private String convertCLOBToBLOBFunction() {
+        return """
+                CREATE OR REPLACE FUNCTION clob_to_blob(
+                    p_clob IN CLOB
+                ) RETURN BLOB IS
+                    l_blob        BLOB;
+                    l_dest_offset INTEGER := 1;
+                    l_src_offset  INTEGER := 1;
+                    l_lang_ctx    INTEGER := DBMS_LOB.DEFAULT_LANG_CTX;
+                    l_warning     INTEGER;
+                BEGIN
+                    IF p_clob IS NULL THEN
+                        RETURN NULL;
+                    END IF;
+                
+                    DBMS_LOB.CREATETEMPORARY(l_blob, TRUE);
+                
+                    DBMS_LOB.CONVERTTOBLOB(
+                        dest_lob     => l_blob,
+                        src_clob     => p_clob,
+                        amount       => DBMS_LOB.LOBMAXSIZE,
+                        dest_offset  => l_dest_offset,
+                        src_offset   => l_src_offset,
+                        blob_csid    => NLS_CHARSET_ID('AL32UTF8'),
+                        lang_context => l_lang_ctx,
+                        warning      => l_warning
+                    );
+
+                    RETURN l_blob;
+                END;
+
+                """;
+    }
+}
diff --git 
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/PostgreSQLUpgradeStatements.java
 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/PostgreSQLUpgradeStatements.java
new file mode 100644
index 0000000000..417de71439
--- /dev/null
+++ 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/PostgreSQLUpgradeStatements.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.upgrade;
+
+public class PostgreSQLUpgradeStatements extends AbstractUpgradeStatements {
+
+    @Override
+    public String getStatements() {
+
+        String postgreSQLUpgradeStatements = """
+                UPDATE SyncopeGroup SET uManager_id=userOwner_id;
+                ALTER TABLE SyncopeGroup DROP COLUMN userOwner_id;
+
+                UPDATE SyncopeGroup SET gManager_id=groupOwner_id;
+                ALTER TABLE SyncopeGroup DROP COLUMN groupOwner_id;
+
+                DELETE FROM AccessToken;
+                ALTER TABLE AccessToken ALTER COLUMN authorities TYPE TEXT;
+                INSERT INTO OIDCOpEntity (id, jwks, customScopes)
+                      SELECT id,convert_to(json, 'UTF-8') AS jwks,'{}' AS 
customScopes FROM OIDCJWKS;
+
+                DROP TABLE OIDCJWKS;
+                """;
+
+        return commonStatements() + postgreSQLUpgradeStatements;
+    }
+}
diff --git 
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/UpgradeStatements.java
 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/UpgradeStatements.java
new file mode 100644
index 0000000000..4c7b7bf846
--- /dev/null
+++ 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/UpgradeStatements.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.upgrade;
+
+public interface UpgradeStatements {
+
+    String getStatements();
+}
diff --git 
a/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/UpgradeStatementsFactory.java
 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/UpgradeStatementsFactory.java
new file mode 100644
index 0000000000..dce3d26844
--- /dev/null
+++ 
b/core/persistence-jpa-upgrader/src/main/java/org/apache/syncope/core/persistence/jpa/upgrade/UpgradeStatementsFactory.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.core.persistence.jpa.upgrade;
+
+import org.apache.openjpa.jdbc.sql.DBDictionary;
+import org.apache.openjpa.jdbc.sql.MariaDBDictionary;
+import org.apache.openjpa.jdbc.sql.MySQLDictionary;
+import org.apache.openjpa.jdbc.sql.OracleDictionary;
+import org.apache.openjpa.jdbc.sql.PostgresDictionary;
+
+public final class UpgradeStatementsFactory {
+
+    private UpgradeStatementsFactory() {
+    }
+
+    public static UpgradeStatements forDatabase(final DBDictionary dictionary) 
{
+
+        if (dictionary instanceof PostgresDictionary) {
+            return new PostgreSQLUpgradeStatements();
+        }
+        if (dictionary instanceof MySQLDictionary) {
+            return new MySQLUpgradeStatements();
+        }
+        if (dictionary instanceof MariaDBDictionary) {
+            return new MariaDBUpgradeStatements();
+        }
+        if (dictionary instanceof OracleDictionary) {
+            return new OracleUpgradeStatements();
+        }
+
+        throw new IllegalArgumentException(dictionary.platform);
+    }
+}
diff --git 
a/core/persistence-jpa-upgrader/src/main/resources/schema-mariadb.xml 
b/core/persistence-jpa-upgrader/src/main/resources/schema-mariadb.xml
index 25aa8bbebd..f2e5fa8aa0 100644
--- a/core/persistence-jpa-upgrader/src/main/resources/schema-mariadb.xml
+++ b/core/persistence-jpa-upgrader/src/main/resources/schema-mariadb.xml
@@ -62,7 +62,7 @@ under the License.
             <column name="id" type="varchar" not-null="true" size="255"/>
             <column name="authorities" type="clob" size="-1"/>
             <column name="body" type="clob" size="-1"/>
-            <column name="expirationTime" type="unknown(2014)"/>
+            <column name="expirationTime" type="timestamp"/>
             <column name="owner" type="varchar" size="255"/>
             <unique name="U_CCSSTKN_OWNER" column="owner"/>
         </table>
@@ -104,10 +104,10 @@ under the License.
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
             <column name="creationContext" type="varchar" size="255"/>
-            <column name="creationDate" type="unknown(2014)"/>
+            <column name="creationDate" type="timestamp"/>
             <column name="creator" type="varchar" size="255"/>
             <column name="lastChangeContext" type="varchar" size="255"/>
-            <column name="lastChangeDate" type="unknown(2014)"/>
+            <column name="lastChangeDate" type="timestamp"/>
             <column name="lastModifier" type="varchar" size="255"/>
             <column name="status" type="varchar" size="255"/>
             <column name="name" type="varchar" size="255"/>
@@ -245,7 +245,7 @@ under the License.
             <column name="opEvent" type="varchar" size="255"/>
             <column name="output" type="clob" size="-1"/>
             <column name="throwable" type="clob" size="-1"/>
-            <column name="event_date" type="unknown(2014)" not-null="true"/>
+            <column name="event_date" type="timestamp" not-null="true"/>
             <column name="who" type="varchar" size="255"/>
         </table>
         <table name="AuthModule">
@@ -333,8 +333,8 @@ under the License.
         <table name="Delegation">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="endDate" type="timestamp"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="DELEGATED_ID" type="varchar" size="36"/>
             <column name="DELEGATING_ID" type="varchar" size="36"/>
             <fk to-table="SyncopeUser" column="DELEGATED_ID"/>
@@ -589,10 +589,10 @@ under the License.
         <table name="LiveSyncTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="LiveSyncTask" column="TASK_ID"/>
@@ -633,10 +633,10 @@ under the License.
         <table name="MacroTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="MacroTask" column="TASK_ID"/>
@@ -696,10 +696,10 @@ under the License.
         <table name="NotificationTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="NotificationTask" column="TASK_ID"/>
@@ -852,10 +852,10 @@ under the License.
         <table name="PropagationTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="PropagationTask" column="TASK_ID"/>
@@ -906,10 +906,10 @@ under the License.
         <table name="PullTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="PullTask" column="TASK_ID"/>
@@ -979,10 +979,10 @@ under the License.
         <table name="PushTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="PushTask" column="TASK_ID"/>
@@ -1094,7 +1094,7 @@ under the License.
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
             <column name="error" type="clob" size="-1"/>
-            <column name="instant" type="unknown(2014)"/>
+            <column name="instant" type="timestamp"/>
             <column name="operation" type="varchar" size="20"/>
             <column name="payload" type="clob" size="-1"/>
             <column name="remoteName" type="varchar" size="255"/>
@@ -1121,10 +1121,10 @@ under the License.
         <table name="ReportExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="execResult" type="blob" size="-1"/>
             <column name="REPORT_ID" type="varchar" size="36"/>
@@ -1223,10 +1223,10 @@ under the License.
         <table name="SchedTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="SchedTask" column="TASK_ID"/>
@@ -1245,7 +1245,7 @@ under the License.
         <table name="SyncopeBatch">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="255"/>
-            <column name="expiryTime" type="unknown(2014)"/>
+            <column name="expiryTime" type="timestamp"/>
             <column name="results" type="clob" size="-1"/>
         </table>
         <table name="SyncopeDomain">
@@ -1257,10 +1257,10 @@ under the License.
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
             <column name="creationContext" type="varchar" size="255"/>
-            <column name="creationDate" type="unknown(2014)"/>
+            <column name="creationDate" type="timestamp"/>
             <column name="creator" type="varchar" size="255"/>
             <column name="lastChangeContext" type="varchar" size="255"/>
-            <column name="lastChangeDate" type="unknown(2014)"/>
+            <column name="lastChangeDate" type="timestamp"/>
             <column name="lastModifier" type="varchar" size="255"/>
             <column name="status" type="varchar" size="255"/>
             <column name="name" type="varchar" size="255"/>
@@ -1327,16 +1327,16 @@ under the License.
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
             <column name="creationContext" type="varchar" size="255"/>
-            <column name="creationDate" type="unknown(2014)"/>
+            <column name="creationDate" type="timestamp"/>
             <column name="creator" type="varchar" size="255"/>
             <column name="lastChangeContext" type="varchar" size="255"/>
-            <column name="lastChangeDate" type="unknown(2014)"/>
+            <column name="lastChangeDate" type="timestamp"/>
             <column name="lastModifier" type="varchar" size="255"/>
             <column name="status" type="varchar" size="255"/>
-            <column name="changePwdDate" type="unknown(2014)"/>
+            <column name="changePwdDate" type="timestamp"/>
             <column name="cipherAlgorithm" type="varchar" size="20"/>
             <column name="failedLogins" type="integer"/>
-            <column name="lastLoginDate" type="unknown(2014)"/>
+            <column name="lastLoginDate" type="timestamp"/>
             <column name="mustChangePassword" type="bit"/>
             <column name="password" type="varchar" size="255"/>
             <column name="passwordHistory" type="clob" size="-1"/>
@@ -1344,7 +1344,7 @@ under the License.
             <column name="securityAnswer" type="varchar" size="255"/>
             <column name="suspended" type="bit"/>
             <column name="token" type="clob" size="-1"/>
-            <column name="tokenExpireTime" type="unknown(2014)"/>
+            <column name="tokenExpireTime" type="timestamp"/>
             <column name="username" type="varchar" size="255"/>
             <column name="GMANAGER_ID" type="varchar" size="36"/>
             <column name="REALM_ID" type="varchar" size="36"/>
diff --git a/core/persistence-jpa-upgrader/src/main/resources/schema-mysql.xml 
b/core/persistence-jpa-upgrader/src/main/resources/schema-mysql.xml
index 91d6c12031..8519c8f6d5 100644
--- a/core/persistence-jpa-upgrader/src/main/resources/schema-mysql.xml
+++ b/core/persistence-jpa-upgrader/src/main/resources/schema-mysql.xml
@@ -62,7 +62,7 @@ under the License.
             <column name="id" type="varchar" not-null="true" size="255"/>
             <column name="authorities" type="clob" size="-1"/>
             <column name="body" type="clob" size="-1"/>
-            <column name="expirationTime" type="unknown(2014)"/>
+            <column name="expirationTime" type="timestamp"/>
             <column name="owner" type="varchar" size="255"/>
             <unique name="U_CCSSTKN_OWNER" column="owner"/>
         </table>
@@ -104,10 +104,10 @@ under the License.
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
             <column name="creationContext" type="varchar" size="255"/>
-            <column name="creationDate" type="unknown(2014)"/>
+            <column name="creationDate" type="timestamp"/>
             <column name="creator" type="varchar" size="255"/>
             <column name="lastChangeContext" type="varchar" size="255"/>
-            <column name="lastChangeDate" type="unknown(2014)"/>
+            <column name="lastChangeDate" type="timestamp"/>
             <column name="lastModifier" type="varchar" size="255"/>
             <column name="status" type="varchar" size="255"/>
             <column name="name" type="varchar" size="255"/>
@@ -245,7 +245,7 @@ under the License.
             <column name="opEvent" type="varchar" size="255"/>
             <column name="output" type="clob" size="-1"/>
             <column name="throwable" type="clob" size="-1"/>
-            <column name="event_date" type="unknown(2014)" not-null="true"/>
+            <column name="event_date" type="timestamp" not-null="true"/>
             <column name="who" type="varchar" size="255"/>
         </table>
         <table name="AuthModule">
@@ -333,8 +333,8 @@ under the License.
         <table name="Delegation">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="endDate" type="timestamp"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="DELEGATED_ID" type="varchar" size="36"/>
             <column name="DELEGATING_ID" type="varchar" size="36"/>
             <fk to-table="SyncopeUser" column="DELEGATED_ID"/>
@@ -589,10 +589,10 @@ under the License.
         <table name="LiveSyncTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="LiveSyncTask" column="TASK_ID"/>
@@ -633,10 +633,10 @@ under the License.
         <table name="MacroTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="MacroTask" column="TASK_ID"/>
@@ -696,10 +696,10 @@ under the License.
         <table name="NotificationTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="NotificationTask" column="TASK_ID"/>
@@ -852,10 +852,10 @@ under the License.
         <table name="PropagationTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="PropagationTask" column="TASK_ID"/>
@@ -906,10 +906,10 @@ under the License.
         <table name="PullTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="PullTask" column="TASK_ID"/>
@@ -979,10 +979,10 @@ under the License.
         <table name="PushTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="PushTask" column="TASK_ID"/>
@@ -1094,7 +1094,7 @@ under the License.
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
             <column name="error" type="clob" size="-1"/>
-            <column name="instant" type="unknown(2014)"/>
+            <column name="instant" type="timestamp"/>
             <column name="operation" type="varchar" size="20"/>
             <column name="payload" type="clob" size="-1"/>
             <column name="remoteName" type="varchar" size="255"/>
@@ -1121,10 +1121,10 @@ under the License.
         <table name="ReportExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="execResult" type="blob" size="-1"/>
             <column name="REPORT_ID" type="varchar" size="36"/>
@@ -1223,10 +1223,10 @@ under the License.
         <table name="SchedTaskExec">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
-            <column name="endDate" type="unknown(2014)"/>
+            <column name="endDate" type="timestamp"/>
             <column name="executor" type="varchar" size="255"/>
             <column name="message" type="clob" size="-1"/>
-            <column name="startDate" type="unknown(2014)" not-null="true"/>
+            <column name="startDate" type="timestamp" not-null="true"/>
             <column name="status" type="varchar" size="255"/>
             <column name="TASK_ID" type="varchar" size="36"/>
             <fk to-table="SchedTask" column="TASK_ID"/>
@@ -1245,7 +1245,7 @@ under the License.
         <table name="SyncopeBatch">
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="255"/>
-            <column name="expiryTime" type="unknown(2014)"/>
+            <column name="expiryTime" type="timestamp"/>
             <column name="results" type="clob" size="-1"/>
         </table>
         <table name="SyncopeDomain">
@@ -1257,10 +1257,10 @@ under the License.
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
             <column name="creationContext" type="varchar" size="255"/>
-            <column name="creationDate" type="unknown(2014)"/>
+            <column name="creationDate" type="timestamp"/>
             <column name="creator" type="varchar" size="255"/>
             <column name="lastChangeContext" type="varchar" size="255"/>
-            <column name="lastChangeDate" type="unknown(2014)"/>
+            <column name="lastChangeDate" type="timestamp"/>
             <column name="lastModifier" type="varchar" size="255"/>
             <column name="status" type="varchar" size="255"/>
             <column name="name" type="varchar" size="255"/>
@@ -1327,16 +1327,16 @@ under the License.
             <pk column="id"/>
             <column name="id" type="varchar" not-null="true" size="36"/>
             <column name="creationContext" type="varchar" size="255"/>
-            <column name="creationDate" type="unknown(2014)"/>
+            <column name="creationDate" type="timestamp"/>
             <column name="creator" type="varchar" size="255"/>
             <column name="lastChangeContext" type="varchar" size="255"/>
-            <column name="lastChangeDate" type="unknown(2014)"/>
+            <column name="lastChangeDate" type="timestamp"/>
             <column name="lastModifier" type="varchar" size="255"/>
             <column name="status" type="varchar" size="255"/>
-            <column name="changePwdDate" type="unknown(2014)"/>
+            <column name="changePwdDate" type="timestamp"/>
             <column name="cipherAlgorithm" type="varchar" size="20"/>
             <column name="failedLogins" type="integer"/>
-            <column name="lastLoginDate" type="unknown(2014)"/>
+            <column name="lastLoginDate" type="timestamp"/>
             <column name="mustChangePassword" type="bit"/>
             <column name="password" type="varchar" size="255"/>
             <column name="passwordHistory" type="clob" size="-1"/>
@@ -1344,7 +1344,7 @@ under the License.
             <column name="securityAnswer" type="varchar" size="255"/>
             <column name="suspended" type="bit"/>
             <column name="token" type="clob" size="-1"/>
-            <column name="tokenExpireTime" type="unknown(2014)"/>
+            <column name="tokenExpireTime" type="timestamp"/>
             <column name="username" type="varchar" size="255"/>
             <column name="GMANAGER_ID" type="varchar" size="36"/>
             <column name="REALM_ID" type="varchar" size="36"/>

Reply via email to