You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/04/21 11:56:34 UTC

[7/7] syncope git commit: [SYNCOPE-822] Verified it works on all supported DBMS

[SYNCOPE-822] Verified it works on all supported DBMS


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/0d745d43
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/0d745d43
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/0d745d43

Branch: refs/heads/master
Commit: 0d745d4341d6770e0a5d1c305d623f6799f872e3
Parents: 1c5251f
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Apr 21 11:56:18 2016 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Apr 21 11:56:18 2016 +0200

----------------------------------------------------------------------
 .../cli/commands/migrate/MigrateConf.java       |  188 +--
 client/cli/src/test/resources/schema20.sql      |  396 +++---
 .../persistence/jpa/dao/AbstractAnyDAO.java     |   20 +-
 .../persistence/jpa/dao/JPAAnySearchDAO.java    |  142 +-
 .../persistence/jpa/dao/JPADerSchemaDAO.java    |    2 +-
 .../core/persistence/jpa/dao/JPAGroupDAO.java   |    2 +-
 .../persistence/jpa/dao/JPAPlainSchemaDAO.java  |    2 +-
 .../core/persistence/jpa/dao/JPATaskDAO.java    |   10 +-
 .../persistence/jpa/dao/JPATaskExecDAO.java     |    4 +-
 .../persistence/jpa/dao/JPAVirSchemaDAO.java    |    2 +-
 .../jpa/entity/AbstractGeneratedKeyEntity.java  |    4 +-
 .../jpa/entity/AbstractPlainAttr.java           |    2 +-
 .../jpa/entity/AbstractProvidedKeyEntity.java   |    6 +-
 .../persistence/jpa/entity/JPAAnyAbout.java     |    2 +-
 .../jpa/entity/JPAAnyTemplateRealm.java         |    2 +-
 .../core/persistence/jpa/entity/JPAAnyType.java |    4 +-
 .../persistence/jpa/entity/JPAConnInstance.java |    2 +-
 .../persistence/jpa/entity/JPANotification.java |    6 +-
 .../core/persistence/jpa/entity/JPARealm.java   |    4 +-
 .../core/persistence/jpa/entity/JPAReport.java  |    2 +-
 .../core/persistence/jpa/entity/JPARole.java    |    6 +-
 .../anyobject/JPAADynGroupMembership.java       |    4 +-
 .../jpa/entity/anyobject/JPAAMembership.java    |    4 +-
 .../anyobject/JPAAPlainAttrUniqueValue.java     |    2 +-
 .../jpa/entity/anyobject/JPAARelationship.java  |    6 +-
 .../jpa/entity/anyobject/JPAAnyObject.java      |    8 +-
 .../entity/conf/JPACPlainAttrUniqueValue.java   |    2 +-
 .../entity/group/JPAGPlainAttrUniqueValue.java  |    2 +-
 .../persistence/jpa/entity/group/JPAGroup.java  |    8 +-
 .../jpa/entity/group/JPATypeExtension.java      |    6 +-
 .../jpa/entity/policy/JPAAccountPolicy.java     |    4 +-
 .../entity/resource/JPAExternalResource.java    |    4 +-
 .../jpa/entity/resource/JPAMappingItem.java     |    6 +-
 .../jpa/entity/resource/JPAProvision.java       |    6 +-
 .../jpa/entity/task/JPAAnyTemplatePullTask.java |    2 +-
 .../jpa/entity/task/JPANotificationTask.java    |    2 +-
 .../jpa/entity/task/JPAPullTask.java            |    2 +-
 .../jpa/entity/task/JPAPushTask.java            |    2 +-
 .../jpa/entity/task/JPAPushTaskAnyFilter.java   |    2 +-
 .../jpa/entity/user/JPADynRoleMembership.java   |    4 +-
 .../jpa/entity/user/JPAUDynGroupMembership.java |    4 +-
 .../jpa/entity/user/JPAUMembership.java         |    4 +-
 .../entity/user/JPAUPlainAttrUniqueValue.java   |    2 +-
 .../jpa/entity/user/JPAURelationship.java       |    6 +-
 .../persistence/jpa/entity/user/JPAUser.java    |   14 +-
 .../resources/META-INF/spring-orm-oracle.xml    |    8 +-
 .../resources/META-INF/spring-orm-sqlserver.xml |    8 +-
 .../src/main/resources/META-INF/spring-orm.xml  |   40 +-
 .../main/resources/domains/MasterContent.xml    |  182 +--
 .../src/main/resources/indexes.xml              |   30 +-
 .../src/main/resources/views.xml                |  106 +-
 .../persistence/jpa/inner/AnySearchTest.java    |   20 +-
 .../core/persistence/jpa/inner/DomainTest.java  |    8 +-
 .../core/persistence/jpa/inner/RealmTest.java   |    8 +-
 .../test/resources/domains/MasterContent.xml    | 1298 +++++++++---------
 .../src/test/resources/domains/TwoContent.xml   |  160 +--
 .../core/logic/init/CamelRouteLoader.java       |    2 +-
 fit/core-reference/pom.xml                      |   15 +-
 .../src/main/resources/sqlserver/views.xml      |  250 ++++
 .../apache/syncope/fit/core/PullTaskITCase.java |    2 +-
 60 files changed, 1660 insertions(+), 1391 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/0d745d43/client/cli/src/main/java/org/apache/syncope/client/cli/commands/migrate/MigrateConf.java
----------------------------------------------------------------------
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/migrate/MigrateConf.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/migrate/MigrateConf.java
index 34851e9..e3110b9 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/migrate/MigrateConf.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/migrate/MigrateConf.java
@@ -145,35 +145,35 @@ public class MigrateConf {
         reader.nextTag(); // dataset
 
         writer.writeStartElement("AnyType");
-        writer.writeAttribute("key", "USER");
+        writer.writeAttribute("id", "USER");
         writer.writeAttribute("kind", "USER");
         writer.writeEndElement();
 
         writer.writeStartElement("AnyTypeClass");
-        writer.writeAttribute("key", "BaseUser");
+        writer.writeAttribute("id", "BaseUser");
         writer.writeEndElement();
 
         writer.writeStartElement("AnyType_AnyTypeClass");
-        writer.writeAttribute("anyType_key", "USER");
-        writer.writeAttribute("anyTypeClass_key", "BaseUser");
+        writer.writeAttribute("anyType_id", "USER");
+        writer.writeAttribute("anyTypeClass_id", "BaseUser");
         writer.writeEndElement();
 
         writer.writeStartElement("AnyType");
-        writer.writeAttribute("key", "GROUP");
+        writer.writeAttribute("id", "GROUP");
         writer.writeAttribute("kind", "GROUP");
         writer.writeEndElement();
 
         writer.writeStartElement("AnyTypeClass");
-        writer.writeAttribute("key", "BaseGroup");
+        writer.writeAttribute("id", "BaseGroup");
         writer.writeEndElement();
 
         writer.writeStartElement("AnyType_AnyTypeClass");
-        writer.writeAttribute("anyType_key", "GROUP");
-        writer.writeAttribute("anyTypeClass_key", "BaseGroup");
+        writer.writeAttribute("anyType_id", "GROUP");
+        writer.writeAttribute("anyTypeClass_id", "BaseGroup");
         writer.writeEndElement();
 
         writer.writeStartElement("AnyTypeClass");
-        writer.writeAttribute("key", "BaseUMembership");
+        writer.writeAttribute("id", "BaseUMembership");
         writer.writeEndElement();
 
         Set<String> connInstanceCapabilities = new HashSet<>();
@@ -196,14 +196,14 @@ public class MigrateConf {
                 switch (reader.getLocalName().toLowerCase()) {
                     case "syncopeconf":
                         writer.writeStartElement("SyncopeConf");
-                        writer.writeAttribute("key", syncopeConf);
+                        writer.writeAttribute("id", syncopeConf);
                         writer.writeEndElement();
                         break;
 
                     case "cschema":
                         writer.writeStartElement("PlainSchema");
                         copyAttrs(reader, writer);
-                        writer.writeAttribute("key", getAttributeValue(reader, "name"));
+                        writer.writeAttribute("id", getAttributeValue(reader, "name"));
                         writer.writeEndElement();
                         break;
 
@@ -211,9 +211,9 @@ public class MigrateConf {
                         writer.writeStartElement("CPlainAttr");
                         copyAttrs(reader, writer, "owner_id", "schema_name");
                         lastUUID = UUID.randomUUID().toString();
-                        writer.writeAttribute("key", lastUUID);
-                        writer.writeAttribute("owner_key", syncopeConf);
-                        writer.writeAttribute("schema_key", getAttributeValue(reader, "schema_name"));
+                        writer.writeAttribute("id", lastUUID);
+                        writer.writeAttribute("owner_id", syncopeConf);
+                        writer.writeAttribute("schema_id", getAttributeValue(reader, "schema_name"));
                         writer.writeEndElement();
                         cPlainAttrs.put(getAttributeValue(reader, "id"), lastUUID);
                         break;
@@ -221,25 +221,25 @@ public class MigrateConf {
                     case "cattrvalue":
                         writer.writeStartElement("CPlainAttrValue");
                         copyAttrs(reader, writer, "attribute_id");
-                        writer.writeAttribute("key", UUID.randomUUID().toString());
+                        writer.writeAttribute("id", UUID.randomUUID().toString());
                         writer.writeAttribute(
-                                "attribute_key", cPlainAttrs.get(getAttributeValue(reader, "attribute_id")));
+                                "attribute_id", cPlainAttrs.get(getAttributeValue(reader, "attribute_id")));
                         writer.writeEndElement();
                         break;
 
                     case "uschema":
                         writer.writeStartElement("PlainSchema");
                         copyAttrs(reader, writer);
-                        writer.writeAttribute("key", getAttributeValue(reader, "name"));
-                        writer.writeAttribute("anyTypeClass_key", "BaseUser");
+                        writer.writeAttribute("id", getAttributeValue(reader, "name"));
+                        writer.writeAttribute("anyTypeClass_id", "BaseUser");
                         writer.writeEndElement();
                         break;
 
                     case "uderschema":
                         writer.writeStartElement("DerSchema");
                         copyAttrs(reader, writer);
-                        writer.writeAttribute("key", getAttributeValue(reader, "name"));
-                        writer.writeAttribute("anyTypeClass_key", "BaseUser");
+                        writer.writeAttribute("id", getAttributeValue(reader, "name"));
+                        writer.writeAttribute("anyTypeClass_id", "BaseUser");
                         writer.writeEndElement();
                         break;
 
@@ -253,16 +253,16 @@ public class MigrateConf {
                     case "rschema":
                         writer.writeStartElement("PlainSchema");
                         copyAttrs(reader, writer);
-                        writer.writeAttribute("key", getAttributeValue(reader, "name"));
-                        writer.writeAttribute("anyTypeClass_key", "BaseGroup");
+                        writer.writeAttribute("id", getAttributeValue(reader, "name"));
+                        writer.writeAttribute("anyTypeClass_id", "BaseGroup");
                         writer.writeEndElement();
                         break;
 
                     case "rderschema":
                         writer.writeStartElement("DerSchema");
                         copyAttrs(reader, writer);
-                        writer.writeAttribute("key", getAttributeValue(reader, "name"));
-                        writer.writeAttribute("anyTypeClass_key", "BaseGroup");
+                        writer.writeAttribute("id", getAttributeValue(reader, "name"));
+                        writer.writeAttribute("anyTypeClass_id", "BaseGroup");
                         writer.writeEndElement();
                         break;
 
@@ -276,16 +276,16 @@ public class MigrateConf {
                     case "mschema":
                         writer.writeStartElement("PlainSchema");
                         copyAttrs(reader, writer);
-                        writer.writeAttribute("key", getAttributeValue(reader, "name"));
-                        writer.writeAttribute("anyTypeClass_key", "BaseUMembership");
+                        writer.writeAttribute("id", getAttributeValue(reader, "name"));
+                        writer.writeAttribute("anyTypeClass_id", "BaseUMembership");
                         writer.writeEndElement();
                         break;
 
                     case "mderschema":
                         writer.writeStartElement("DerSchema");
                         copyAttrs(reader, writer);
-                        writer.writeAttribute("key", getAttributeValue(reader, "name"));
-                        writer.writeAttribute("anyTypeClass_key", "BaseUMembership");
+                        writer.writeAttribute("id", getAttributeValue(reader, "name"));
+                        writer.writeAttribute("anyTypeClass_id", "BaseUMembership");
                         writer.writeEndElement();
                         break;
 
@@ -307,7 +307,7 @@ public class MigrateConf {
                         switch (getAttributeValue(reader, "DTYPE")) {
                             case "SyncPolicy":
                                 writer.writeStartElement("PullPolicy");
-                                writer.writeAttribute("key", lastUUID);
+                                writer.writeAttribute("id", lastUUID);
                                 writer.writeAttribute(
                                         "description", getAttributeValue(reader, "description"));
                                 writer.writeEndElement();
@@ -315,7 +315,7 @@ public class MigrateConf {
 
                             case "PasswordPolicy":
                                 writer.writeStartElement("PasswordPolicy");
-                                writer.writeAttribute("key", lastUUID);
+                                writer.writeAttribute("id", lastUUID);
                                 writer.writeAttribute(
                                         "description", getAttributeValue(reader, "description"));
 
@@ -339,15 +339,15 @@ public class MigrateConf {
                                 writer.writeEndElement();
 
                                 writer.writeStartElement("PasswordRuleConfInstance");
-                                writer.writeAttribute("key", lastUUID);
-                                writer.writeAttribute("passwordPolicy_key", lastUUID);
+                                writer.writeAttribute("id", lastUUID);
+                                writer.writeAttribute("passwordPolicy_id", lastUUID);
                                 writer.writeAttribute("serializedInstance", specification.toString());
                                 writer.writeEndElement();
                                 break;
 
                             case "AccountPolicy":
                                 writer.writeStartElement("AccountPolicy");
-                                writer.writeAttribute("key", lastUUID);
+                                writer.writeAttribute("id", lastUUID);
                                 writer.writeAttribute(
                                         "description", getAttributeValue(reader, "description"));
 
@@ -372,8 +372,8 @@ public class MigrateConf {
                                 writer.writeEndElement();
 
                                 writer.writeStartElement("AccountRuleConfInstance");
-                                writer.writeAttribute("key", lastUUID);
-                                writer.writeAttribute("accountPolicy_key", lastUUID);
+                                writer.writeAttribute("id", lastUUID);
+                                writer.writeAttribute("accountPolicy_id", lastUUID);
                                 writer.writeAttribute("serializedInstance", specification.toString());
                                 writer.writeEndElement();
                                 break;
@@ -388,7 +388,7 @@ public class MigrateConf {
 
                         writer.writeStartElement("ConnInstance");
                         copyAttrs(reader, writer);
-                        writer.writeAttribute("key", lastUUID);
+                        writer.writeAttribute("id", lastUUID);
                         writer.writeEndElement();
                         break;
 
@@ -404,7 +404,7 @@ public class MigrateConf {
                         }
                         if (!connInstanceCapabilities.contains(connInstanceId + capabilities)) {
                             writer.writeStartElement("ConnInstance_capabilities");
-                            writer.writeAttribute("connInstance_key", connInstanceKey);
+                            writer.writeAttribute("connInstance_id", connInstanceKey);
                             writer.writeAttribute("capability", capabilities);
                             writer.writeEndElement();
 
@@ -420,20 +420,20 @@ public class MigrateConf {
                                 "passwordPolicy_id",
                                 "creator", "lastModifier", "creationDate", "lastChangeDate");
 
-                        writer.writeAttribute("key", getAttributeValue(reader, "name"));
+                        writer.writeAttribute("id", getAttributeValue(reader, "name"));
                         writer.writeAttribute(
-                                "connector_key", connInstances.get(getAttributeValue(reader, "connector_id")));
+                                "connector_id", connInstances.get(getAttributeValue(reader, "connector_id")));
 
                         writer.writeAttribute("pullTraceLevel", getAttributeValue(reader, "syncTraceLevel"));
 
                         String syncPolicyKey = policies.get(getAttributeValue(reader, "syncPolicy_id"));
                         if (StringUtils.isNotBlank(syncPolicyKey)) {
-                            writer.writeAttribute("pullPolicy_key", syncPolicyKey);
+                            writer.writeAttribute("pullPolicy_id", syncPolicyKey);
                         }
 
                         String passwordPolicyKey = policies.get(getAttributeValue(reader, "passwordPolicy_id"));
                         if (StringUtils.isNotBlank(passwordPolicyKey)) {
-                            writer.writeAttribute("passwordPolicy_key", passwordPolicyKey);
+                            writer.writeAttribute("passwordPolicy_id", passwordPolicyKey);
                         }
 
                         writer.writeEndElement();
@@ -442,7 +442,7 @@ public class MigrateConf {
                     case "externalresource_propactions":
                         writer.writeStartElement("ExternalResource_PropActions");
 
-                        writer.writeAttribute("resource_key", getAttributeValue(reader, "externalResource_name"));
+                        writer.writeAttribute("resource_id", getAttributeValue(reader, "externalResource_name"));
 
                         String propActionClassName = getAttributeValue(reader, "element");
                         switch (propActionClassName) {
@@ -470,8 +470,8 @@ public class MigrateConf {
                     case "policy_externalresource":
                         writer.writeStartElement("AccountPolicy_ExternalResource");
                         writer.writeAttribute(
-                                "accountPolicy_key", policies.get(getAttributeValue(reader, "account_policy_id")));
-                        writer.writeAttribute("resource_key", getAttributeValue(reader, "resource_name"));
+                                "accountPolicy_id", policies.get(getAttributeValue(reader, "account_policy_id")));
+                        writer.writeAttribute("resource_id", getAttributeValue(reader, "resource_name"));
                         writer.writeEndElement();
                         break;
 
@@ -481,9 +481,9 @@ public class MigrateConf {
                         provisions.put(umappingId, lastUUID);
 
                         writer.writeStartElement("Provision");
-                        writer.writeAttribute("key", lastUUID);
-                        writer.writeAttribute("resource_key", getAttributeValue(reader, "resource_name"));
-                        writer.writeAttribute("anyType_key", "USER");
+                        writer.writeAttribute("id", lastUUID);
+                        writer.writeAttribute("resource_id", getAttributeValue(reader, "resource_name"));
+                        writer.writeAttribute("anyType_id", "USER");
                         writer.writeAttribute("objectClass", "__ACCOUNT__");
                         writer.writeEndElement();
 
@@ -491,8 +491,8 @@ public class MigrateConf {
                         mappings.put(umappingId, lastUUID);
 
                         writer.writeStartElement("Mapping");
-                        writer.writeAttribute("key", lastUUID);
-                        writer.writeAttribute("provision_key", provisions.get(umappingId));
+                        writer.writeAttribute("id", lastUUID);
+                        writer.writeAttribute("provision_id", provisions.get(umappingId));
 
                         String uaccountLink = getAttributeValue(reader, "accountlink");
                         if (StringUtils.isNotBlank(uaccountLink)) {
@@ -510,8 +510,8 @@ public class MigrateConf {
                         } else {
                             writer.writeStartElement("MappingItem");
                             copyAttrs(reader, writer, "accountid", "intMappingType", "mapping_id");
-                            writer.writeAttribute("key", UUID.randomUUID().toString());
-                            writer.writeAttribute("mapping_key", mappings.get(getAttributeValue(reader, "mapping_id")));
+                            writer.writeAttribute("id", UUID.randomUUID().toString());
+                            writer.writeAttribute("mapping_id", mappings.get(getAttributeValue(reader, "mapping_id")));
                             writer.writeAttribute("intMappingType", toNewIntMappingType(uIntMappingType));
                             writer.writeAttribute("connObjectKey", getAttributeValue(reader, "accountid"));
                             writer.writeEndElement();
@@ -524,9 +524,9 @@ public class MigrateConf {
                         provisions.put(rmappingId, lastUUID);
 
                         writer.writeStartElement("Provision");
-                        writer.writeAttribute("key", lastUUID);
-                        writer.writeAttribute("resource_key", getAttributeValue(reader, "resource_name"));
-                        writer.writeAttribute("anyType_key", "GROUP");
+                        writer.writeAttribute("id", lastUUID);
+                        writer.writeAttribute("resource_id", getAttributeValue(reader, "resource_name"));
+                        writer.writeAttribute("anyType_id", "GROUP");
                         writer.writeAttribute("objectClass", "__GROUP__");
                         writer.writeEndElement();
 
@@ -534,8 +534,8 @@ public class MigrateConf {
                         mappings.put(rmappingId, lastUUID);
 
                         writer.writeStartElement("Mapping");
-                        writer.writeAttribute("key", lastUUID);
-                        writer.writeAttribute("provision_key", provisions.get(rmappingId));
+                        writer.writeAttribute("id", lastUUID);
+                        writer.writeAttribute("provision_id", provisions.get(rmappingId));
 
                         String raccountLink = getAttributeValue(reader, "accountlink");
                         if (StringUtils.isNotBlank(raccountLink)) {
@@ -553,9 +553,9 @@ public class MigrateConf {
                         } else {
                             writer.writeStartElement("MappingItem");
                             copyAttrs(reader, writer, "accountid", "intMappingType", "mapping_id");
-                            writer.writeAttribute("key", UUID.randomUUID().toString());
+                            writer.writeAttribute("id", UUID.randomUUID().toString());
                             writer.writeAttribute(
-                                    "mapping_key", mappings.get("10" + getAttributeValue(reader, "mapping_id")));
+                                    "mapping_id", mappings.get("10" + getAttributeValue(reader, "mapping_id")));
                             writer.writeAttribute("intMappingType", toNewIntMappingType(rIntMappingType));
                             writer.writeAttribute("connObjectKey", getAttributeValue(reader, "accountid"));
                             writer.writeEndElement();
@@ -572,11 +572,11 @@ public class MigrateConf {
                         lastUUID = UUID.randomUUID().toString();
                         tasks.put(getAttributeValue(reader, "id"), lastUUID);
 
-                        writer.writeAttribute("key", lastUUID);
+                        writer.writeAttribute("id", lastUUID);
 
                         String resourceName = getAttributeValue(reader, "resource_name");
                         if (StringUtils.isNotBlank(resourceName)) {
-                            writer.writeAttribute("resource_key", resourceName);
+                            writer.writeAttribute("resource_id", resourceName);
                         }
 
                         String name = getAttributeValue(reader, "name");
@@ -618,9 +618,9 @@ public class MigrateConf {
                                     template.set("plainAttrs", plainAttrs);
 
                                     writer.writeStartElement("AnyTemplatePullTask");
-                                    writer.writeAttribute("key", UUID.randomUUID().toString());
-                                    writer.writeAttribute("pullTask_key", lastUUID);
-                                    writer.writeAttribute("anyType_key", "USER");
+                                    writer.writeAttribute("id", UUID.randomUUID().toString());
+                                    writer.writeAttribute("pullTask_id", lastUUID);
+                                    writer.writeAttribute("anyType_id", "USER");
                                     writer.writeAttribute("template", template.toString());
                                     writer.writeEndElement();
                                 }
@@ -631,9 +631,9 @@ public class MigrateConf {
                                     template.set("plainAttrs", plainAttrs);
 
                                     writer.writeStartElement("AnyTemplatePullTask");
-                                    writer.writeAttribute("key", UUID.randomUUID().toString());
-                                    writer.writeAttribute("pullTask_key", lastUUID);
-                                    writer.writeAttribute("anyType_key", "GROUP");
+                                    writer.writeAttribute("id", UUID.randomUUID().toString());
+                                    writer.writeAttribute("pullTask_id", lastUUID);
+                                    writer.writeAttribute("anyType_id", "GROUP");
                                     writer.writeAttribute("template", template.toString());
                                     writer.writeEndElement();
                                 }
@@ -658,18 +658,18 @@ public class MigrateConf {
                                 String userFilter = getAttributeValue(reader, "userFilter");
                                 if (StringUtils.isNotBlank(userFilter)) {
                                     writer.writeStartElement("PushTaskAnyFilter");
-                                    writer.writeAttribute("key", UUID.randomUUID().toString());
-                                    writer.writeAttribute("pushTask_key", lastUUID);
-                                    writer.writeAttribute("anyType_key", "USER");
+                                    writer.writeAttribute("id", UUID.randomUUID().toString());
+                                    writer.writeAttribute("pushTask_id", lastUUID);
+                                    writer.writeAttribute("anyType_id", "USER");
                                     writer.writeAttribute("fiql", userFilter);
                                     writer.writeEndElement();
                                 }
                                 String roleFilter = getAttributeValue(reader, "roleFilter");
                                 if (StringUtils.isNotBlank(roleFilter)) {
                                     writer.writeStartElement("PushTaskAnyFilter");
-                                    writer.writeAttribute("key", UUID.randomUUID().toString());
-                                    writer.writeAttribute("pushTask_key", lastUUID);
-                                    writer.writeAttribute("anyType_key", "GROUP");
+                                    writer.writeAttribute("id", UUID.randomUUID().toString());
+                                    writer.writeAttribute("pushTask_id", lastUUID);
+                                    writer.writeAttribute("anyType_id", "GROUP");
                                     writer.writeAttribute("fiql", roleFilter);
                                     writer.writeEndElement();
                                 }
@@ -682,15 +682,15 @@ public class MigrateConf {
                     case "taskexec":
                         writer.writeStartElement("TaskExec");
                         copyAttrs(reader, writer, "task_id");
-                        writer.writeAttribute("key", UUID.randomUUID().toString());
-                        writer.writeAttribute("task_key", tasks.get(getAttributeValue(reader, "task_id")));
+                        writer.writeAttribute("id", UUID.randomUUID().toString());
+                        writer.writeAttribute("task_id", tasks.get(getAttributeValue(reader, "task_id")));
                         writer.writeEndElement();
                         break;
 
                     case "synctask_actionsclassnames":
                         writer.writeStartElement("PullTask_actionsClassNames");
                         writer.writeAttribute(
-                                "pullTask_key", tasks.get(getAttributeValue(reader, "syncTask_id")));
+                                "pullTask_id", tasks.get(getAttributeValue(reader, "syncTask_id")));
 
                         String syncActionClassName = getAttributeValue(reader, "element");
                         switch (syncActionClassName) {
@@ -721,7 +721,7 @@ public class MigrateConf {
                         lastUUID = UUID.randomUUID().toString();
                         notifications.put(getAttributeValue(reader, "id"), lastUUID);
 
-                        writer.writeAttribute("key", lastUUID);
+                        writer.writeAttribute("id", lastUUID);
 
                         copyAttrs(reader, writer, "recipientAttrType", "template",
                                 "userAbout", "roleAbout", "recipients");
@@ -733,24 +733,24 @@ public class MigrateConf {
                         if (StringUtils.isNotBlank(recipients)) {
                             writer.writeAttribute("recipientsFIQL", getAttributeValue(reader, "recipients"));
                         }
-                        writer.writeAttribute("template_key", getAttributeValue(reader, "template"));
+                        writer.writeAttribute("template_id", getAttributeValue(reader, "template"));
                         writer.writeEndElement();
 
                         String userAbout = getAttributeValue(reader, "userAbout");
                         if (StringUtils.isNotBlank(userAbout)) {
                             writer.writeStartElement("AnyAbout");
-                            writer.writeAttribute("key", UUID.randomUUID().toString());
-                            writer.writeAttribute("notification_key", lastUUID);
-                            writer.writeAttribute("anyType_key", "USER");
+                            writer.writeAttribute("id", UUID.randomUUID().toString());
+                            writer.writeAttribute("notification_id", lastUUID);
+                            writer.writeAttribute("anyType_id", "USER");
                             writer.writeAttribute("filter", userAbout);
                             writer.writeEndElement();
                         }
                         String roleAbout = getAttributeValue(reader, "roleAbout");
                         if (StringUtils.isNotBlank(roleAbout)) {
                             writer.writeStartElement("AnyAbout");
-                            writer.writeAttribute("key", UUID.randomUUID().toString());
-                            writer.writeAttribute("notification_key", lastUUID);
-                            writer.writeAttribute("anyType_key", "GROUP");
+                            writer.writeAttribute("id", UUID.randomUUID().toString());
+                            writer.writeAttribute("notification_id", lastUUID);
+                            writer.writeAttribute("anyType_id", "GROUP");
                             writer.writeAttribute("filter", roleAbout);
                             writer.writeEndElement();
                         }
@@ -760,7 +760,7 @@ public class MigrateConf {
                         writer.writeStartElement("Notification_events");
                         copyAttrs(reader, writer, "notification_id", "events");
                         writer.writeAttribute(
-                                "notification_key", notifications.get(getAttributeValue(reader, "notification_id")));
+                                "notification_id", notifications.get(getAttributeValue(reader, "notification_id")));
                         writer.writeAttribute(
                                 "event", getAttributeValue(reader, "events").
                                 replaceAll("Controller", "Logic"));
@@ -771,7 +771,7 @@ public class MigrateConf {
                         writer.writeStartElement("NotificationTask_recipients");
                         copyAttrs(reader, writer, "notificationTask_id");
                         writer.writeAttribute(
-                                "notificationTask_key",
+                                "notificationTask_id",
                                 tasks.get(getAttributeValue(reader, "notificationTask_id")));
                         writer.writeEndElement();
                         break;
@@ -783,7 +783,7 @@ public class MigrateConf {
                         lastUUID = UUID.randomUUID().toString();
                         reports.put(getAttributeValue(reader, "id"), lastUUID);
 
-                        writer.writeAttribute("key", lastUUID);
+                        writer.writeAttribute("id", lastUUID);
                         writer.writeAttribute("name", getAttributeValue(reader, "name"));
 
                         writer.writeEndElement();
@@ -793,8 +793,8 @@ public class MigrateConf {
                         writer.writeStartElement("ReportletConfInstance");
                         copyAttrs(reader, writer, "report_id");
 
-                        writer.writeAttribute("key", UUID.randomUUID().toString());
-                        writer.writeAttribute("report_key", reports.get(getAttributeValue(reader, "report_id")));
+                        writer.writeAttribute("id", UUID.randomUUID().toString());
+                        writer.writeAttribute("report_id", reports.get(getAttributeValue(reader, "report_id")));
 
                         writer.writeEndElement();
                         break;
@@ -803,8 +803,8 @@ public class MigrateConf {
                         writer.writeStartElement("ReportExec");
                         copyAttrs(reader, writer, "report_id");
 
-                        writer.writeAttribute("key", UUID.randomUUID().toString());
-                        writer.writeAttribute("report_key", reports.get(getAttributeValue(reader, "report_id")));
+                        writer.writeAttribute("id", UUID.randomUUID().toString());
+                        writer.writeAttribute("report_id", reports.get(getAttributeValue(reader, "report_id")));
 
                         writer.writeEndElement();
                         break;
@@ -812,7 +812,7 @@ public class MigrateConf {
                     case "securityquestion":
                         writer.writeStartElement("SecurityQuestion");
                         copyAttrs(reader, writer);
-                        writer.writeAttribute("key", UUID.randomUUID().toString());
+                        writer.writeAttribute("id", UUID.randomUUID().toString());
                         writer.writeEndElement();
                         break;
 
@@ -824,13 +824,13 @@ public class MigrateConf {
         }
 
         writer.writeStartElement("Realm");
-        writer.writeAttribute("key", UUID.randomUUID().toString());
+        writer.writeAttribute("id", UUID.randomUUID().toString());
         writer.writeAttribute("name", "/");
         if (globalAccountPolicy != null) {
-            writer.writeAttribute("accountPolicy_key", globalAccountPolicy);
+            writer.writeAttribute("accountPolicy_id", globalAccountPolicy);
         }
         if (globalPasswordPolicy != null) {
-            writer.writeAttribute("passwordPolicy_key", globalPasswordPolicy);
+            writer.writeAttribute("passwordPolicy_id", globalPasswordPolicy);
         }
         writer.writeEndElement();
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/0d745d43/client/cli/src/test/resources/schema20.sql
----------------------------------------------------------------------
diff --git a/client/cli/src/test/resources/schema20.sql b/client/cli/src/test/resources/schema20.sql
index 1a1d185..504393d 100644
--- a/client/cli/src/test/resources/schema20.sql
+++ b/client/cli/src/test/resources/schema20.sql
@@ -15,207 +15,207 @@
 -- specific language governing permissions and limitations
 -- under the License.
 
-CREATE TABLE AccountPolicy (key VARCHAR(36) NOT NULL, description VARCHAR(255), maxAuthenticationAttempts INTEGER, propagateSuspension INTEGER, PRIMARY KEY (key));
-CREATE TABLE AccountPolicy_ExternalResource (accountPolicy_key VARCHAR(36), resource_key VARCHAR(255));
-CREATE TABLE AccountRuleConfInstance (key VARCHAR(36) NOT NULL, serializedInstance CLOB, ACCOUNTPOLICY_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE ADynGroupMembership (key VARCHAR(36) NOT NULL, fiql VARCHAR(255), GROUP_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE ADynGroupMembership_AnyObject (aDynGroupMembership_key VARCHAR(36), anyObject_key VARCHAR(36));
-CREATE TABLE AMembership (key VARCHAR(36) NOT NULL, anyObject_key VARCHAR(36), group_key VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE AnyAbout (key VARCHAR(36) NOT NULL, filter CLOB, NOTIFICATION_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_NYABOUT_NOTIFICATION_KEY UNIQUE (NOTIFICATION_KEY, ANYTYPE_KEY));
-CREATE TABLE AnyObject (key VARCHAR(36) NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), REALM_KEY VARCHAR(36), TYPE_KEY VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE AnyObject_AnyTypeClass (anyObject_key VARCHAR(36), anyTypeClass_key VARCHAR(255));
-CREATE TABLE AnyObject_ExternalResource (anyObject_key VARCHAR(36), resource_key VARCHAR(255));
-CREATE TABLE AnyTemplatePullTask (key VARCHAR(36) NOT NULL, template CLOB, PULLTASK_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_NYTMTSK_PULLTASK_KEY UNIQUE (PULLTASK_KEY, ANYTYPE_KEY));
-CREATE TABLE AnyTemplateRealm (key VARCHAR(36) NOT NULL, template CLOB, REALM_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_NYTMRLM_REALM_KEY UNIQUE (REALM_KEY, ANYTYPE_KEY));
-CREATE TABLE AnyType (key VARCHAR(255) NOT NULL, kind VARCHAR(20), PRIMARY KEY (key));
-CREATE TABLE AnyTypeClass (key VARCHAR(255) NOT NULL, PRIMARY KEY (key));
-CREATE TABLE AnyType_AnyTypeClass (anyType_key VARCHAR(255), anyTypeClass_key VARCHAR(255));
-CREATE TABLE APlainAttr (key VARCHAR(36) NOT NULL, OWNER_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE APlainAttrUniqueValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_PLNTQVL_BOOLEANVALUE1 UNIQUE (booleanValue, schema_key), CONSTRAINT U_PLNTQVL_DATEVALUE1 UNIQUE (dateValue, schema_key), CONSTRAINT U_PLNTQVL_STRINGVALUE1 UNIQUE (stringValue, schema_key), CONSTRAINT U_PLNTQVL_DOUBLEVALUE1 UNIQUE (doubleValue, schema_key), CONSTRAINT U_PLNTQVL_LONGVALUE1 UNIQUE (longValue, schema_key));
-CREATE TABLE APlainAttrValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE ARelationship (key VARCHAR(36) NOT NULL, left_anyObject_key VARCHAR(36), right_anyObject_key VARCHAR(36), TYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_RLTNSHP_TYPE_KEY1 UNIQUE (TYPE_KEY, left_anyObject_key, right_anyObject_key));
-CREATE TABLE ConnInstance (key VARCHAR(36) NOT NULL, bundleName VARCHAR(255), connRequestTimeout INTEGER, connectorName VARCHAR(255), displayName VARCHAR(255), jsonConf CLOB, location VARCHAR(255), version VARCHAR(255), maxIdle INTEGER, maxObjects INTEGER, maxWait BIGINT, minEvictableIdleTimeMillis BIGINT, minIdle INTEGER, PRIMARY KEY (key), CONSTRAINT U_CNNNTNC_DISPLAYNAME UNIQUE (displayName));
-CREATE TABLE ConnInstance_capabilities (connInstance_key VARCHAR(36), capability VARCHAR(20));
-CREATE TABLE CPlainAttr (key VARCHAR(36) NOT NULL, schema_key VARCHAR(255), OWNER_KEY VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE CPlainAttrUniqueValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_CPLNQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_key), CONSTRAINT U_CPLNQVL_DATEVALUE UNIQUE (dateValue, schema_key), CONSTRAINT U_CPLNQVL_STRINGVALUE UNIQUE (stringValue, schema_key), CONSTRAINT U_CPLNQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_key), CONSTRAINT U_CPLNQVL_LONGVALUE UNIQUE (longValue, schema_key));
-CREATE TABLE CPlainAttrValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE DerSchema (key VARCHAR(255) NOT NULL, expression VARCHAR(255), ANYTYPECLASS_KEY VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE DynRoleMembership (key VARCHAR(36) NOT NULL, fiql VARCHAR(255), ROLE_KEY VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE DynRoleMembership_User (dynRoleMembership_key VARCHAR(36), user_key VARCHAR(36));
-CREATE TABLE ExternalResource (key VARCHAR(255) NOT NULL, createTraceLevel VARCHAR(20), deleteTraceLevel VARCHAR(20), enforceMandatoryCondition INTEGER, jsonConf CLOB, overrideCapabilities INTEGER, propagationPriority INTEGER, pullTraceLevel VARCHAR(20), randomPwdIfNotProvided INTEGER, updateTraceLevel VARCHAR(20), ACCOUNTPOLICY_KEY VARCHAR(36), CONNECTOR_KEY VARCHAR(36), PASSWORDPOLICY_KEY VARCHAR(36), PULLPOLICY_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE ExternalResource_capOverride (resource_key VARCHAR(255), capabilityOverride VARCHAR(20));
-CREATE TABLE ExternalResource_PropActions (resource_key VARCHAR(255), actionClassName VARCHAR(255));
-CREATE TABLE GPlainAttr (key VARCHAR(36) NOT NULL, schema_key VARCHAR(255), OWNER_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE GPlainAttrUniqueValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_GPLNQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_key), CONSTRAINT U_GPLNQVL_DATEVALUE UNIQUE (dateValue, schema_key), CONSTRAINT U_GPLNQVL_STRINGVALUE UNIQUE (stringValue, schema_key), CONSTRAINT U_GPLNQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_key), CONSTRAINT U_GPLNQVL_LONGVALUE UNIQUE (longValue, schema_key));
-CREATE TABLE GPlainAttrValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE MailTemplate (key VARCHAR(255) NOT NULL, htmlTemplate CLOB, textTemplate CLOB, PRIMARY KEY (key));
-CREATE TABLE Mapping (key VARCHAR(36) NOT NULL, connObjectLink VARCHAR(255), PROVISION_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE MappingItem (key VARCHAR(36) NOT NULL, connObjectKey INTEGER, extAttrName VARCHAR(255), intAttrName VARCHAR(255), intMappingType VARCHAR(22), mandatoryCondition VARCHAR(255), password INTEGER, purpose VARCHAR(20), MAPPING_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE MappingItem_Transformer (mappingItem_key VARCHAR(36), transformerClassName VARCHAR(255));
-CREATE TABLE Notification (key VARCHAR(36) NOT NULL, active INTEGER, recipientAttrName VARCHAR(255), recipientAttrType VARCHAR(22), recipientsFIQL VARCHAR(255), recipientsProviderClassName VARCHAR(255), selfAsRecipient INTEGER, sender VARCHAR(255), subject VARCHAR(255), traceLevel VARCHAR(20), template_key VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE NotificationTask_recipients (notificationTask_key VARCHAR(36), address VARCHAR(255));
-CREATE TABLE Notification_events (notification_key VARCHAR(36), event VARCHAR(255));
-CREATE TABLE Notification_staticRecipients (notification_key VARCHAR(36), staticRecipients VARCHAR(255));
-CREATE TABLE PasswordPolicy (key VARCHAR(36) NOT NULL, description VARCHAR(255), allowNullPassword INTEGER, historyLength INTEGER, PRIMARY KEY (key));
-CREATE TABLE PasswordRuleConfInstance (key VARCHAR(36) NOT NULL, serializedInstance CLOB, PASSWORDPOLICY_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE PlainSchema (key VARCHAR(255) NOT NULL, cipherAlgorithm VARCHAR(20), conversionPattern VARCHAR(255), enumerationKeys CLOB, enumerationValues CLOB, mandatoryCondition VARCHAR(255), mimeType VARCHAR(255), multivalue INTEGER, readonly INTEGER, secretKey VARCHAR(255), type VARCHAR(20), uniqueConstraint INTEGER, validatorClass VARCHAR(255), ANYTYPECLASS_KEY VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE Provision (key VARCHAR(36) NOT NULL, objectClass VARCHAR(255), serializedSyncToken CLOB, ANYTYPE_KEY VARCHAR(255), RESOURCE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_PROVSON_RESOURCE_KEY UNIQUE (RESOURCE_KEY, ANYTYPE_KEY));
-CREATE TABLE Provision_AnyTypeClass (provision_key VARCHAR(36), anyTypeClass_key VARCHAR(255));
-CREATE TABLE PullPolicy (key VARCHAR(36) NOT NULL, description VARCHAR(255), specification CLOB, PRIMARY KEY (key));
-CREATE TABLE PullTask_actionsClassNames (pullTask_key VARCHAR(36), actionClassName VARCHAR(255));
-CREATE TABLE PushPolicy (key VARCHAR(36) NOT NULL, description VARCHAR(255), specification CLOB, PRIMARY KEY (key));
-CREATE TABLE PushTaskAnyFilter (key VARCHAR(36) NOT NULL, fiql VARCHAR(255), PUSHTASK_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_PSHTLTR_PUSHTASK_KEY UNIQUE (PUSHTASK_KEY, ANYTYPE_KEY));
+CREATE TABLE AccountPolicy (id VARCHAR(36) NOT NULL, description VARCHAR(255), maxAuthenticationAttempts INTEGER, propagateSuspension INTEGER, PRIMARY KEY (id));
+CREATE TABLE AccountPolicy_ExternalResource (accountPolicy_id VARCHAR(36), resource_id VARCHAR(255));
+CREATE TABLE AccountRuleConfInstance (id VARCHAR(36) NOT NULL, serializedInstance CLOB, ACCOUNTPOLICY_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE ADynGroupMembership (id VARCHAR(36) NOT NULL, fiql VARCHAR(255), GROUP_ID VARCHAR(36), ANYTYPE_ID VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE ADynGroupMembership_AnyObject (aDynGroupMembership_id VARCHAR(36), anyObject_id VARCHAR(36));
+CREATE TABLE AMembership (id VARCHAR(36) NOT NULL, anyObject_id VARCHAR(36), group_id VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE AnyAbout (id VARCHAR(36) NOT NULL, filter CLOB, ANYTYPE_ID VARCHAR(255), NOTIFICATION_ID VARCHAR(36), PRIMARY KEY (id), CONSTRAINT U_NYABOUT_NOTIFICATION_ID UNIQUE (NOTIFICATION_ID, ANYTYPE_ID));
+CREATE TABLE AnyObject (id VARCHAR(36) NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), REALM_ID VARCHAR(36), TYPE_ID VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE AnyObject_AnyTypeClass (anyObject_id VARCHAR(36), anyTypeClass_id VARCHAR(255));
+CREATE TABLE AnyObject_ExternalResource (anyObject_id VARCHAR(36), resource_id VARCHAR(255));
+CREATE TABLE AnyTemplatePullTask (id VARCHAR(36) NOT NULL, template CLOB, PULLTASK_ID VARCHAR(36), ANYTYPE_ID VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_NYTMTSK_PULLTASK_ID UNIQUE (PULLTASK_ID, ANYTYPE_ID));
+CREATE TABLE AnyTemplateRealm (id VARCHAR(36) NOT NULL, template CLOB, REALM_ID VARCHAR(36), ANYTYPE_ID VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_NYTMRLM_REALM_ID UNIQUE (REALM_ID, ANYTYPE_ID));
+CREATE TABLE AnyType (id VARCHAR(255) NOT NULL, kind VARCHAR(20), PRIMARY KEY (id));
+CREATE TABLE AnyTypeClass (id VARCHAR(255) NOT NULL, PRIMARY KEY (id));
+CREATE TABLE AnyType_AnyTypeClass (anyType_id VARCHAR(255), anyTypeClass_id VARCHAR(255));
+CREATE TABLE APlainAttr (id VARCHAR(36) NOT NULL, OWNER_ID VARCHAR(36), schema_id VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE APlainAttrUniqueValue (id VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID VARCHAR(36), schema_id VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_PLNTQVL_BOOLEANVALUE1 UNIQUE (booleanValue, schema_id), CONSTRAINT U_PLNTQVL_DATEVALUE1 UNIQUE (dateValue, schema_id), CONSTRAINT U_PLNTQVL_STRINGVALUE1 UNIQUE (stringValue, schema_id), CONSTRAINT U_PLNTQVL_DOUBLEVALUE1 UNIQUE (doubleValue, schema_id), CONSTRAINT U_PLNTQVL_LONGVALUE1 UNIQUE (longValue, schema_id));
+CREATE TABLE APlainAttrValue (id VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE ARelationship (id VARCHAR(36) NOT NULL, left_anyObject_id VARCHAR(36), right_anyObject_id VARCHAR(36), TYPE_ID VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_RLTNSHP_TYPE_ID1 UNIQUE (TYPE_ID, left_anyObject_id, right_anyObject_id));
+CREATE TABLE ConnInstance (id VARCHAR(36) NOT NULL, bundleName VARCHAR(255), connRequestTimeout INTEGER, connectorName VARCHAR(255), displayName VARCHAR(255), jsonConf CLOB, location VARCHAR(255), version VARCHAR(255), maxIdle INTEGER, maxObjects INTEGER, maxWait BIGINT, minEvictableIdleTimeMillis BIGINT, minIdle INTEGER, PRIMARY KEY (id), CONSTRAINT U_CNNNTNC_DISPLAYNAME UNIQUE (displayName));
+CREATE TABLE ConnInstance_capabilities (connInstance_id VARCHAR(36), capability VARCHAR(20));
+CREATE TABLE CPlainAttr (id VARCHAR(36) NOT NULL, schema_id VARCHAR(255), OWNER_ID VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE CPlainAttrUniqueValue (id VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID VARCHAR(36), schema_id VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_CPLNQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_id), CONSTRAINT U_CPLNQVL_DATEVALUE UNIQUE (dateValue, schema_id), CONSTRAINT U_CPLNQVL_STRINGVALUE UNIQUE (stringValue, schema_id), CONSTRAINT U_CPLNQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_id), CONSTRAINT U_CPLNQVL_LONGVALUE UNIQUE (longValue, schema_id));
+CREATE TABLE CPlainAttrValue (id VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE DerSchema (id VARCHAR(255) NOT NULL, expression VARCHAR(255), ANYTYPECLASS_ID VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE DynRoleMembership (id VARCHAR(36) NOT NULL, fiql VARCHAR(255), ROLE_ID VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE DynRoleMembership_User (dynRoleMembership_id VARCHAR(36), user_id VARCHAR(36));
+CREATE TABLE ExternalResource (id VARCHAR(255) NOT NULL, createTraceLevel VARCHAR(20), deleteTraceLevel VARCHAR(20), enforceMandatoryCondition INTEGER, jsonConf CLOB, overrideCapabilities INTEGER, propagationPriority INTEGER, pullTraceLevel VARCHAR(20), randomPwdIfNotProvided INTEGER, updateTraceLevel VARCHAR(20), ACCOUNTPOLICY_ID VARCHAR(36), CONNECTOR_ID VARCHAR(36), PASSWORDPOLICY_ID VARCHAR(36), PULLPOLICY_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE ExternalResource_capOverride (resource_id VARCHAR(255), capabilityOverride VARCHAR(20));
+CREATE TABLE ExternalResource_PropActions (resource_id VARCHAR(255), actionClassName VARCHAR(255));
+CREATE TABLE GPlainAttr (id VARCHAR(36) NOT NULL, schema_id VARCHAR(255), OWNER_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE GPlainAttrUniqueValue (id VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID VARCHAR(36), schema_id VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_GPLNQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_id), CONSTRAINT U_GPLNQVL_DATEVALUE UNIQUE (dateValue, schema_id), CONSTRAINT U_GPLNQVL_STRINGVALUE UNIQUE (stringValue, schema_id), CONSTRAINT U_GPLNQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_id), CONSTRAINT U_GPLNQVL_LONGVALUE UNIQUE (longValue, schema_id));
+CREATE TABLE GPlainAttrValue (id VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE MailTemplate (id VARCHAR(255) NOT NULL, htmlTemplate CLOB, textTemplate CLOB, PRIMARY KEY (id));
+CREATE TABLE Mapping (id VARCHAR(36) NOT NULL, connObjectLink VARCHAR(255), PROVISION_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE MappingItem (id VARCHAR(36) NOT NULL, connObjectKey INTEGER, extAttrName VARCHAR(255), intAttrName VARCHAR(255), intMappingType VARCHAR(22), mandatoryCondition VARCHAR(255), password INTEGER, purpose VARCHAR(20), MAPPING_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE MappingItem_Transformer (mappingItem_id VARCHAR(36), transformerClassName VARCHAR(255));
+CREATE TABLE Notification (id VARCHAR(36) NOT NULL, active INTEGER, recipientAttrName VARCHAR(255), recipientAttrType VARCHAR(22), recipientsFIQL VARCHAR(255), recipientsProviderClassName VARCHAR(255), selfAsRecipient INTEGER, sender VARCHAR(255), subject VARCHAR(255), traceLevel VARCHAR(20), template_id VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE NotificationTask_recipients (notificationTask_id VARCHAR(36), address VARCHAR(255));
+CREATE TABLE Notification_events (notification_id VARCHAR(36), event VARCHAR(255));
+CREATE TABLE Notification_staticRecipients (notification_id VARCHAR(36), staticRecipients VARCHAR(255));
+CREATE TABLE PasswordPolicy (id VARCHAR(36) NOT NULL, description VARCHAR(255), allowNullPassword INTEGER, historyLength INTEGER, PRIMARY KEY (id));
+CREATE TABLE PasswordRuleConfInstance (id VARCHAR(36) NOT NULL, serializedInstance CLOB, PASSWORDPOLICY_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE PlainSchema (id VARCHAR(255) NOT NULL, cipherAlgorithm VARCHAR(20), conversionPattern VARCHAR(255), enumerationKeys CLOB, enumerationValues CLOB, mandatoryCondition VARCHAR(255), mimeType VARCHAR(255), multivalue INTEGER, readonly INTEGER, secretKey VARCHAR(255), type VARCHAR(20), uniqueConstraint INTEGER, validatorClass VARCHAR(255), ANYTYPECLASS_ID VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE Provision (id VARCHAR(36) NOT NULL, objectClass VARCHAR(255), serializedSyncToken CLOB, RESOURCE_ID VARCHAR(255), ANYTYPE_ID VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_PROVSON_RESOURCE_ID UNIQUE (RESOURCE_ID, ANYTYPE_ID));
+CREATE TABLE Provision_AnyTypeClass (provision_id VARCHAR(36), anyTypeClass_id VARCHAR(255));
+CREATE TABLE PullPolicy (id VARCHAR(36) NOT NULL, description VARCHAR(255), specification CLOB, PRIMARY KEY (id));
+CREATE TABLE PullTask_actionsClassNames (pullTask_id VARCHAR(36), actionClassName VARCHAR(255));
+CREATE TABLE PushPolicy (id VARCHAR(36) NOT NULL, description VARCHAR(255), specification CLOB, PRIMARY KEY (id));
+CREATE TABLE PushTaskAnyFilter (id VARCHAR(36) NOT NULL, fiql VARCHAR(255), ANYTYPE_ID VARCHAR(255), PUSHTASK_ID VARCHAR(36), PRIMARY KEY (id), CONSTRAINT U_PSHTLTR_PUSHTASK_ID UNIQUE (PUSHTASK_ID, ANYTYPE_ID));
 CREATE TABLE PushTask_actionsClassNames (pushTask_key VARCHAR(36), actionClassName VARCHAR(255));
-CREATE TABLE Realm (key VARCHAR(36) NOT NULL, name VARCHAR(255), ACCOUNTPOLICY_KEY VARCHAR(36), PARENT_KEY VARCHAR(36), PASSWORDPOLICY_KEY VARCHAR(36), PRIMARY KEY (key), CONSTRAINT U_REALM_KEY UNIQUE (key, PARENT_KEY));
+CREATE TABLE Realm (id VARCHAR(36) NOT NULL, name VARCHAR(255), ACCOUNTPOLICY_ID VARCHAR(36), PARENT_ID VARCHAR(36), PASSWORDPOLICY_ID VARCHAR(36), PRIMARY KEY (id), CONSTRAINT U_REALM_ID UNIQUE (id, PARENT_ID));
 CREATE TABLE Realm_actionsClassNames (realm_key VARCHAR(36), actionClassName VARCHAR(255));
-CREATE TABLE RelationshipType (key VARCHAR(255) NOT NULL, description VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE Report (key VARCHAR(36) NOT NULL, active INTEGER, cronExpression VARCHAR(255), name VARCHAR(255) NOT NULL, template_key VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_REPORT_NAME UNIQUE (name));
-CREATE TABLE ReportExec (key VARCHAR(36) NOT NULL, endDate TIMESTAMP, message CLOB, startDate TIMESTAMP, status VARCHAR(255), execResult BLOB, REPORT_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE ReportletConfInstance (key VARCHAR(36) NOT NULL, serializedInstance CLOB, REPORT_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE ReportTemplate (key VARCHAR(255) NOT NULL, csvTemplate CLOB, foTemplate CLOB, htmlTemplate CLOB, PRIMARY KEY (key));
-CREATE TABLE SecurityQuestion (key VARCHAR(36) NOT NULL, content VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_SCRTSTN_CONTENT UNIQUE (content));
-CREATE TABLE SyncopeConf (key VARCHAR(255) NOT NULL, PRIMARY KEY (key));
-CREATE TABLE SyncopeDomain (key VARCHAR(255) NOT NULL, adminCipherAlgorithm VARCHAR(20), adminPwd VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE SyncopeGroup (key VARCHAR(36) NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), name VARCHAR(255), REALM_KEY VARCHAR(36), GROUPOWNER_KEY VARCHAR(36), USEROWNER_KEY VARCHAR(36), PRIMARY KEY (key), CONSTRAINT U_SYNCGRP_NAME UNIQUE (name));
-CREATE TABLE SyncopeGroup_AnyTypeClass (group_key VARCHAR(36), anyTypeClass_key VARCHAR(255));
-CREATE TABLE SyncopeGroup_ExternalResource (group_key VARCHAR(36), resource_key VARCHAR(255));
+CREATE TABLE RelationshipType (id VARCHAR(255) NOT NULL, description VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE Report (id VARCHAR(36) NOT NULL, active INTEGER, cronExpression VARCHAR(255), name VARCHAR(255) NOT NULL, template_id VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_REPORT_NAME UNIQUE (name));
+CREATE TABLE ReportExec (id VARCHAR(36) NOT NULL, endDate TIMESTAMP, message CLOB, startDate TIMESTAMP, status VARCHAR(255), execResult BLOB, REPORT_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE ReportletConfInstance (id VARCHAR(36) NOT NULL, serializedInstance CLOB, REPORT_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE ReportTemplate (id VARCHAR(255) NOT NULL, csvTemplate CLOB, foTemplate CLOB, htmlTemplate CLOB, PRIMARY KEY (id));
+CREATE TABLE SecurityQuestion (id VARCHAR(36) NOT NULL, content VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_SCRTSTN_CONTENT UNIQUE (content));
+CREATE TABLE SyncopeConf (id VARCHAR(255) NOT NULL, PRIMARY KEY (id));
+CREATE TABLE SyncopeDomain (id VARCHAR(255) NOT NULL, adminCipherAlgorithm VARCHAR(20), adminPwd VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE SyncopeGroup (id VARCHAR(36) NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), name VARCHAR(255), REALM_ID VARCHAR(36), GROUPOWNER_ID VARCHAR(36), USEROWNER_ID VARCHAR(36), PRIMARY KEY (id), CONSTRAINT U_SYNCGRP_NAME UNIQUE (name));
+CREATE TABLE SyncopeGroup_AnyTypeClass (group_id VARCHAR(36), anyTypeClass_id VARCHAR(255));
+CREATE TABLE SyncopeGroup_ExternalResource (group_id VARCHAR(36), resource_id VARCHAR(255));
 CREATE TABLE SyncopeLogger (logName VARCHAR(255) NOT NULL, logLevel VARCHAR(20) NOT NULL, logType VARCHAR(20) NOT NULL, PRIMARY KEY (logName));
-CREATE TABLE SyncopeRole (key VARCHAR(255) NOT NULL, PRIMARY KEY (key));
-CREATE TABLE SyncopeRole_entitlements (role_key VARCHAR(255), entitlement VARCHAR(255));
-CREATE TABLE SyncopeRole_Realm (role_key VARCHAR(255), realm_key VARCHAR(36));
-CREATE TABLE SyncopeUser (key VARCHAR(36) NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), changePwdDate TIMESTAMP, cipherAlgorithm VARCHAR(20), failedLogins INTEGER, lastLoginDate TIMESTAMP, mustChangePassword INTEGER, password VARCHAR(255), securityAnswer VARCHAR(255), suspended INTEGER, token CLOB, tokenExpireTime TIMESTAMP, username VARCHAR(255), REALM_KEY VARCHAR(36), SECURITYQUESTION_KEY VARCHAR(36), PRIMARY KEY (key), CONSTRAINT U_SYNCPSR_USERNAME UNIQUE (username));
-CREATE TABLE SyncopeUser_AnyTypeClass (user_key VARCHAR(36), anyTypeClass_key VARCHAR(255));
-CREATE TABLE SyncopeUser_ExternalResource (user_key VARCHAR(36), resource_key VARCHAR(255));
-CREATE TABLE SyncopeUser_passwordHistory (user_key VARCHAR(36), passwordHistoryValue VARCHAR(255));
-CREATE TABLE SyncopeUser_SyncopeRole (user_key VARCHAR(36), role_key VARCHAR(255));
-CREATE TABLE Task (key VARCHAR(36) NOT NULL, DTYPE VARCHAR(31), anyKey VARCHAR(255), anyType VARCHAR(255), anyTypeKind VARCHAR(20), attributes CLOB, connObjectKey VARCHAR(255), objectClassName VARCHAR(255), oldConnObjectKey VARCHAR(255), operation VARCHAR(20), RESOURCE_KEY VARCHAR(255), active INTEGER, cronExpression VARCHAR(255), description VARCHAR(255), jobDelegateClassName VARCHAR(255), name VARCHAR(255), startAt TIMESTAMP, matchingRule VARCHAR(20), performCreate INTEGER, performDelete INTEGER, performUpdate INTEGER, pullStatus INTEGER, unmatchingRule VARCHAR(20), executed INTEGER, htmlBody CLOB, sender VARCHAR(255), subject VARCHAR(255), textBody CLOB, traceLevel VARCHAR(20), NOTIFICATION_KEY VARCHAR(36), pullMode VARCHAR(23), reconciliationFilterBuilderClassName VARCHAR(255), DESTINATIONREALM_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE TaskExec (key VARCHAR(36) NOT NULL, endDate TIMESTAMP, message CLOB, startDate TIMESTAMP, status VARCHAR(255), TASK_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE TypeExtension (key VARCHAR(36) NOT NULL, GROUP_KEY VARCHAR(36), ANYTYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_TYPXNSN_GROUP_KEY UNIQUE (GROUP_KEY, ANYTYPE_KEY));
-CREATE TABLE TypeExtension_AnyTypeClass (typeExtension_key VARCHAR(36), anyTypeClass_key VARCHAR(255));
-CREATE TABLE UDynGroupMembership (key VARCHAR(36) NOT NULL, fiql VARCHAR(255), GROUP_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE UDynGroupMembership_User (uDynGroupMembership_key VARCHAR(36), user_key VARCHAR(36));
-CREATE TABLE UMembership (key VARCHAR(36) NOT NULL, user_key VARCHAR(36), group_key VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE UPlainAttr (key VARCHAR(36) NOT NULL, OWNER_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key));
-CREATE TABLE UPlainAttrUniqueValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), schema_key VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_PLNTQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_key), CONSTRAINT U_PLNTQVL_DATEVALUE UNIQUE (dateValue, schema_key), CONSTRAINT U_PLNTQVL_STRINGVALUE UNIQUE (stringValue, schema_key), CONSTRAINT U_PLNTQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_key), CONSTRAINT U_PLNTQVL_LONGVALUE UNIQUE (longValue, schema_key));
-CREATE TABLE UPlainAttrValue (key VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE TABLE URelationship (key VARCHAR(36) NOT NULL, user_key VARCHAR(36), anyObject_key VARCHAR(36), TYPE_KEY VARCHAR(255), PRIMARY KEY (key), CONSTRAINT U_RLTNSHP_TYPE_KEY UNIQUE (TYPE_KEY, user_key, anyObject_key));
-CREATE TABLE VirSchema (key VARCHAR(255) NOT NULL, extAttrName VARCHAR(255), readonly INTEGER, ANYTYPECLASS_KEY VARCHAR(255), PROVISION_KEY VARCHAR(36), PRIMARY KEY (key));
-CREATE INDEX I_CCNTSRC_ACCOUNTPOLICY_KEY ON AccountPolicy_ExternalResource (accountPolicy_key);
-CREATE INDEX I_CCNTSRC_ELEMENT ON AccountPolicy_ExternalResource (resource_key);
-CREATE INDEX I_CCNTTNC_ACCOUNTPOLICY ON AccountRuleConfInstance (ACCOUNTPOLICY_KEY);
-CREATE INDEX I_DYNGSHP_ANYTYPE ON ADynGroupMembership (ANYTYPE_KEY);
-CREATE INDEX I_DYNGSHP_GROUP ON ADynGroupMembership (GROUP_KEY);
-CREATE INDEX I_DYNGJCT_ADYNGROUPMEMBERSHIP_KEY ON ADynGroupMembership_AnyObject (aDynGroupMembership_key);
-CREATE INDEX I_DYNGJCT_ELEMENT ON ADynGroupMembership_AnyObject (anyObject_key);
-CREATE INDEX I_MMBRSHP_LEFTEND1 ON AMembership (anyObject_key);
-CREATE INDEX I_MMBRSHP_RIGHTEND1 ON AMembership (group_key);
-CREATE INDEX I_NYABOUT_ANYTYPE ON AnyAbout (ANYTYPE_KEY);
-CREATE INDEX I_NYABOUT_NOTIFICATION ON AnyAbout (NOTIFICATION_KEY);
-CREATE INDEX I_NYOBJCT_REALM ON AnyObject (REALM_KEY);
-CREATE INDEX I_NYOBJCT_TYPE ON AnyObject (TYPE_KEY);
-CREATE INDEX I_NYBJLSS_ANYOBJECT_KEY ON AnyObject_AnyTypeClass (anyObject_key);
-CREATE INDEX I_NYBJLSS_ELEMENT ON AnyObject_AnyTypeClass (anyTypeClass_key);
-CREATE INDEX I_NYBJSRC_ANYOBJECT_KEY ON AnyObject_ExternalResource (anyObject_key);
-CREATE INDEX I_NYBJSRC_ELEMENT ON AnyObject_ExternalResource (resource_key);
-CREATE INDEX I_NYTMTSK_ANYTYPE ON AnyTemplatePullTask (ANYTYPE_KEY);
-CREATE INDEX I_NYTMTSK_PULLTASK ON AnyTemplatePullTask (PULLTASK_KEY);
-CREATE INDEX I_NYTMRLM_ANYTYPE ON AnyTemplateRealm (ANYTYPE_KEY);
-CREATE INDEX I_NYTMRLM_REALM ON AnyTemplateRealm (REALM_KEY);
-CREATE INDEX I_NYTYLSS_ANYTYPE_KEY ON AnyType_AnyTypeClass (anyType_key);
-CREATE INDEX I_NYTYLSS_ELEMENT ON AnyType_AnyTypeClass (anyTypeClass_key);
-CREATE INDEX I_PLINTTR_OWNER ON APlainAttr (OWNER_KEY);
-CREATE INDEX I_PLINTTR_SCHEMA ON APlainAttr (schema_key);
-CREATE INDEX I_PLNTQVL_ATTRIBUTE1 ON APlainAttrUniqueValue (ATTRIBUTE_KEY);
-CREATE INDEX I_PLNTQVL_SCHEMA1 ON APlainAttrUniqueValue (schema_key);
-CREATE INDEX I_PLNTRVL_ATTRIBUTE1 ON APlainAttrValue (ATTRIBUTE_KEY);
-CREATE INDEX I_RLTNSHP_LEFTEND1 ON ARelationship (left_anyObject_key);
-CREATE INDEX I_RLTNSHP_RIGHTEND1 ON ARelationship (right_anyObject_key);
-CREATE INDEX I_RLTNSHP_TYPE1 ON ARelationship (TYPE_KEY);
-CREATE INDEX I_CNNNLTS_CONNINSTANCE_KEY ON ConnInstance_capabilities (connInstance_key);
-CREATE INDEX I_CPLNTTR_OWNER ON CPlainAttr (OWNER_KEY);
-CREATE INDEX I_CPLNTTR_SCHEMA ON CPlainAttr (schema_key);
-CREATE INDEX I_CPLNQVL_ATTRIBUTE ON CPlainAttrUniqueValue (ATTRIBUTE_KEY);
-CREATE INDEX I_CPLNQVL_SCHEMA ON CPlainAttrUniqueValue (schema_key);
-CREATE INDEX I_CPLNRVL_ATTRIBUTE ON CPlainAttrValue (ATTRIBUTE_KEY);
-CREATE INDEX I_DRSCHEM_ANYTYPECLASS ON DerSchema (ANYTYPECLASS_KEY);
-CREATE INDEX I_DYNRSHP_ROLE ON DynRoleMembership (ROLE_KEY);
-CREATE INDEX I_DYNR_SR_DYNROLEMEMBERSHIP_KEY ON DynRoleMembership_User (dynRoleMembership_key);
-CREATE INDEX I_DYNR_SR_ELEMENT ON DynRoleMembership_User (user_key);
-CREATE INDEX I_XTRNSRC_ACCOUNTPOLICY ON ExternalResource (ACCOUNTPOLICY_KEY);
-CREATE INDEX I_XTRNSRC_CONNECTOR ON ExternalResource (CONNECTOR_KEY);
-CREATE INDEX I_XTRNSRC_PASSWORDPOLICY ON ExternalResource (PASSWORDPOLICY_KEY);
-CREATE INDEX I_XTRNSRC_PULLPOLICY ON ExternalResource (PULLPOLICY_KEY);
-CREATE INDEX I_XTRNRRD_RESOURCE_KEY ON ExternalResource_capOverride (resource_key);
-CREATE INDEX I_XTRNTNS_RESOURCE_KEY ON ExternalResource_PropActions (resource_key);
-CREATE INDEX I_GPLNTTR_OWNER ON GPlainAttr (OWNER_KEY);
-CREATE INDEX I_GPLNTTR_SCHEMA ON GPlainAttr (schema_key);
-CREATE INDEX I_GPLNQVL_ATTRIBUTE ON GPlainAttrUniqueValue (ATTRIBUTE_KEY);
-CREATE INDEX I_GPLNQVL_SCHEMA ON GPlainAttrUniqueValue (schema_key);
-CREATE INDEX I_GPLNRVL_ATTRIBUTE ON GPlainAttrValue (ATTRIBUTE_KEY);
-CREATE INDEX I_MAPPING_PROVISION ON Mapping (PROVISION_KEY);
-CREATE INDEX I_MPPNGTM_MAPPING ON MappingItem (MAPPING_KEY);
-CREATE INDEX I_MPPNRMR_MAPPINGITEM_KEY ON MappingItem_Transformer (mappingItem_key);
-CREATE INDEX I_NTFCTON_TEMPLATE ON Notification (template_key);
-CREATE INDEX I_NTFCNTS_NOTIFICATIONTASK_KEY ON NotificationTask_recipients (notificationTask_key);
-CREATE INDEX I_NTFCNTS_NOTIFICATION_KEY ON Notification_events (notification_key);
-CREATE INDEX I_NTFCNTS_NOTIFICATION_KEY1 ON Notification_staticRecipients (notification_key);
-CREATE INDEX I_PSSWTNC_PASSWORDPOLICY ON PasswordRuleConfInstance (PASSWORDPOLICY_KEY);
-CREATE INDEX I_PLNSCHM_ANYTYPECLASS ON PlainSchema (ANYTYPECLASS_KEY);
-CREATE INDEX I_PROVSON_ANYTYPE ON Provision (ANYTYPE_KEY);
-CREATE INDEX I_PROVSON_RESOURCE ON Provision (RESOURCE_KEY);
-CREATE INDEX I_PRVSLSS_ELEMENT ON Provision_AnyTypeClass (anyTypeClass_key);
-CREATE INDEX I_PRVSLSS_PROVISION_KEY ON Provision_AnyTypeClass (provision_key);
-CREATE INDEX I_PLLTNMS_PULLTASK_KEY ON PullTask_actionsClassNames (pullTask_key);
-CREATE INDEX I_PSHTLTR_ANYTYPE ON PushTaskAnyFilter (ANYTYPE_KEY);
-CREATE INDEX I_PSHTLTR_PUSHTASK ON PushTaskAnyFilter (PUSHTASK_KEY);
+CREATE TABLE SyncopeRole (id VARCHAR(255) NOT NULL, PRIMARY KEY (id));
+CREATE TABLE SyncopeRole_entitlements (role_id VARCHAR(255), entitlement VARCHAR(255));
+CREATE TABLE SyncopeRole_Realm (role_id VARCHAR(255), realm_id VARCHAR(36));
+CREATE TABLE SyncopeUser (id VARCHAR(36) NOT NULL, creationDate TIMESTAMP NOT NULL, creator VARCHAR(255) NOT NULL, lastChangeDate TIMESTAMP NOT NULL, lastModifier VARCHAR(255) NOT NULL, status VARCHAR(255), workflowId VARCHAR(255), changePwdDate TIMESTAMP, cipherAlgorithm VARCHAR(20), failedLogins INTEGER, lastLoginDate TIMESTAMP, mustChangePassword INTEGER, password VARCHAR(255), securityAnswer VARCHAR(255), suspended INTEGER, token CLOB, tokenExpireTime TIMESTAMP, username VARCHAR(255), REALM_ID VARCHAR(36), SECURITYQUESTION_ID VARCHAR(36), PRIMARY KEY (id), CONSTRAINT U_SYNCPSR_USERNAME UNIQUE (username));
+CREATE TABLE SyncopeUser_AnyTypeClass (user_id VARCHAR(36), anyTypeClass_id VARCHAR(255));
+CREATE TABLE SyncopeUser_ExternalResource (user_id VARCHAR(36), resource_id VARCHAR(255));
+CREATE TABLE SyncopeUser_passwordHistory (user_id VARCHAR(36), passwordHistoryValue VARCHAR(255));
+CREATE TABLE SyncopeUser_SyncopeRole (user_id VARCHAR(36), role_id VARCHAR(255));
+CREATE TABLE Task (id VARCHAR(36) NOT NULL, DTYPE VARCHAR(31), active INTEGER, cronExpression VARCHAR(255), description VARCHAR(255), jobDelegateClassName VARCHAR(255), name VARCHAR(255), startAt TIMESTAMP, anyKey VARCHAR(255), anyTypeKind VARCHAR(20), executed INTEGER, htmlBody CLOB, sender VARCHAR(255), subject VARCHAR(255), textBody CLOB, traceLevel VARCHAR(20), NOTIFICATION_ID VARCHAR(36), matchingRule VARCHAR(20), performCreate INTEGER, performDelete INTEGER, performUpdate INTEGER, pullStatus INTEGER, unmatchingRule VARCHAR(20), RESOURCE_ID VARCHAR(255), pullMode VARCHAR(23), reconciliationFilterBuilderClassName VARCHAR(255), DESTINATIONREALM_ID VARCHAR(36), anyType VARCHAR(255), attributes CLOB, connObjectKey VARCHAR(255), objectClassName VARCHAR(255), oldConnObjectKey VARCHAR(255), operation VARCHAR(20), PRIMARY KEY (id));
+CREATE TABLE TaskExec (id VARCHAR(36) NOT NULL, endDate TIMESTAMP, message CLOB, startDate TIMESTAMP, status VARCHAR(255), TASK_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE TypeExtension (id VARCHAR(36) NOT NULL, GROUP_ID VARCHAR(36), ANYTYPE_ID VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_TYPXNSN_GROUP_ID UNIQUE (GROUP_ID, ANYTYPE_ID));
+CREATE TABLE TypeExtension_AnyTypeClass (typeExtension_id VARCHAR(36), anyTypeClass_id VARCHAR(255));
+CREATE TABLE UDynGroupMembership (id VARCHAR(36) NOT NULL, fiql VARCHAR(255), GROUP_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE UDynGroupMembership_User (uDynGroupMembership_id VARCHAR(36), user_id VARCHAR(36));
+CREATE TABLE UMembership (id VARCHAR(36) NOT NULL, user_id VARCHAR(36), group_id VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE UPlainAttr (id VARCHAR(36) NOT NULL, OWNER_ID VARCHAR(36), schema_id VARCHAR(255), PRIMARY KEY (id));
+CREATE TABLE UPlainAttrUniqueValue (id VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID VARCHAR(36), schema_id VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_PLNTQVL_BOOLEANVALUE UNIQUE (booleanValue, schema_id), CONSTRAINT U_PLNTQVL_DATEVALUE UNIQUE (dateValue, schema_id), CONSTRAINT U_PLNTQVL_STRINGVALUE UNIQUE (stringValue, schema_id), CONSTRAINT U_PLNTQVL_DOUBLEVALUE UNIQUE (doubleValue, schema_id), CONSTRAINT U_PLNTQVL_LONGVALUE UNIQUE (longValue, schema_id));
+CREATE TABLE UPlainAttrValue (id VARCHAR(36) NOT NULL, binaryValue BLOB, booleanValue INTEGER, dateValue TIMESTAMP, doubleValue DOUBLE, longValue BIGINT, stringValue VARCHAR(255), ATTRIBUTE_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE TABLE URelationship (id VARCHAR(36) NOT NULL, user_id VARCHAR(36), anyObject_id VARCHAR(36), TYPE_ID VARCHAR(255), PRIMARY KEY (id), CONSTRAINT U_RLTNSHP_TYPE_ID UNIQUE (TYPE_ID, user_id, anyObject_id));
+CREATE TABLE VirSchema (id VARCHAR(255) NOT NULL, extAttrName VARCHAR(255), readonly INTEGER, ANYTYPECLASS_ID VARCHAR(255), PROVISION_ID VARCHAR(36), PRIMARY KEY (id));
+CREATE INDEX I_CCNTSRC_ACCOUNTPOLICY_ID ON AccountPolicy_ExternalResource (accountPolicy_id);
+CREATE INDEX I_CCNTSRC_ELEMENT ON AccountPolicy_ExternalResource (resource_id);
+CREATE INDEX I_CCNTTNC_ACCOUNTPOLICY ON AccountRuleConfInstance (ACCOUNTPOLICY_ID);
+CREATE INDEX I_DYNGSHP_ANYTYPE ON ADynGroupMembership (ANYTYPE_ID);
+CREATE INDEX I_DYNGSHP_GROUP ON ADynGroupMembership (GROUP_ID);
+CREATE INDEX I_DYNGJCT_ADYNGROUPMEMBERSHIP_ID ON ADynGroupMembership_AnyObject (aDynGroupMembership_id);
+CREATE INDEX I_DYNGJCT_ELEMENT ON ADynGroupMembership_AnyObject (anyObject_id);
+CREATE INDEX I_MMBRSHP_LEFTEND1 ON AMembership (anyObject_id);
+CREATE INDEX I_MMBRSHP_RIGHTEND1 ON AMembership (group_id);
+CREATE INDEX I_NYABOUT_ANYTYPE ON AnyAbout (ANYTYPE_ID);
+CREATE INDEX I_NYABOUT_NOTIFICATION ON AnyAbout (NOTIFICATION_ID);
+CREATE INDEX I_NYOBJCT_REALM ON AnyObject (REALM_ID);
+CREATE INDEX I_NYOBJCT_TYPE ON AnyObject (TYPE_ID);
+CREATE INDEX I_NYBJLSS_ANYOBJECT_ID ON AnyObject_AnyTypeClass (anyObject_id);
+CREATE INDEX I_NYBJLSS_ELEMENT ON AnyObject_AnyTypeClass (anyTypeClass_id);
+CREATE INDEX I_NYBJSRC_ANYOBJECT_ID ON AnyObject_ExternalResource (anyObject_id);
+CREATE INDEX I_NYBJSRC_ELEMENT ON AnyObject_ExternalResource (resource_id);
+CREATE INDEX I_NYTMTSK_ANYTYPE ON AnyTemplatePullTask (ANYTYPE_ID);
+CREATE INDEX I_NYTMTSK_PULLTASK ON AnyTemplatePullTask (PULLTASK_ID);
+CREATE INDEX I_NYTMRLM_ANYTYPE ON AnyTemplateRealm (ANYTYPE_ID);
+CREATE INDEX I_NYTMRLM_REALM ON AnyTemplateRealm (REALM_ID);
+CREATE INDEX I_NYTYLSS_ANYTYPE_ID ON AnyType_AnyTypeClass (anyType_id);
+CREATE INDEX I_NYTYLSS_ELEMENT ON AnyType_AnyTypeClass (anyTypeClass_id);
+CREATE INDEX I_PLINTTR_OWNER ON APlainAttr (OWNER_ID);
+CREATE INDEX I_PLINTTR_SCHEMA ON APlainAttr (schema_id);
+CREATE INDEX I_PLNTQVL_ATTRIBUTE1 ON APlainAttrUniqueValue (ATTRIBUTE_ID);
+CREATE INDEX I_PLNTQVL_SCHEMA1 ON APlainAttrUniqueValue (schema_id);
+CREATE INDEX I_PLNTRVL_ATTRIBUTE1 ON APlainAttrValue (ATTRIBUTE_ID);
+CREATE INDEX I_RLTNSHP_LEFTEND1 ON ARelationship (left_anyObject_id);
+CREATE INDEX I_RLTNSHP_RIGHTEND1 ON ARelationship (right_anyObject_id);
+CREATE INDEX I_RLTNSHP_TYPE1 ON ARelationship (TYPE_ID);
+CREATE INDEX I_CNNNLTS_CONNINSTANCE_ID ON ConnInstance_capabilities (connInstance_id);
+CREATE INDEX I_CPLNTTR_OWNER ON CPlainAttr (OWNER_ID);
+CREATE INDEX I_CPLNTTR_SCHEMA ON CPlainAttr (schema_id);
+CREATE INDEX I_CPLNQVL_ATTRIBUTE ON CPlainAttrUniqueValue (ATTRIBUTE_ID);
+CREATE INDEX I_CPLNQVL_SCHEMA ON CPlainAttrUniqueValue (schema_id);
+CREATE INDEX I_CPLNRVL_ATTRIBUTE ON CPlainAttrValue (ATTRIBUTE_ID);
+CREATE INDEX I_DRSCHEM_ANYTYPECLASS ON DerSchema (ANYTYPECLASS_ID);
+CREATE INDEX I_DYNRSHP_ROLE ON DynRoleMembership (ROLE_ID);
+CREATE INDEX I_DYNR_SR_DYNROLEMEMBERSHIP_ID ON DynRoleMembership_User (dynRoleMembership_id);
+CREATE INDEX I_DYNR_SR_ELEMENT ON DynRoleMembership_User (user_id);
+CREATE INDEX I_XTRNSRC_ACCOUNTPOLICY ON ExternalResource (ACCOUNTPOLICY_ID);
+CREATE INDEX I_XTRNSRC_CONNECTOR ON ExternalResource (CONNECTOR_ID);
+CREATE INDEX I_XTRNSRC_PASSWORDPOLICY ON ExternalResource (PASSWORDPOLICY_ID);
+CREATE INDEX I_XTRNSRC_PULLPOLICY ON ExternalResource (PULLPOLICY_ID);
+CREATE INDEX I_XTRNRRD_RESOURCE_ID ON ExternalResource_capOverride (resource_id);
+CREATE INDEX I_XTRNTNS_RESOURCE_ID ON ExternalResource_PropActions (resource_id);
+CREATE INDEX I_GPLNTTR_OWNER ON GPlainAttr (OWNER_ID);
+CREATE INDEX I_GPLNTTR_SCHEMA ON GPlainAttr (schema_id);
+CREATE INDEX I_GPLNQVL_ATTRIBUTE ON GPlainAttrUniqueValue (ATTRIBUTE_ID);
+CREATE INDEX I_GPLNQVL_SCHEMA ON GPlainAttrUniqueValue (schema_id);
+CREATE INDEX I_GPLNRVL_ATTRIBUTE ON GPlainAttrValue (ATTRIBUTE_ID);
+CREATE INDEX I_MAPPING_PROVISION ON Mapping (PROVISION_ID);
+CREATE INDEX I_MPPNGTM_MAPPING ON MappingItem (MAPPING_ID);
+CREATE INDEX I_MPPNRMR_MAPPINGITEM_ID ON MappingItem_Transformer (mappingItem_id);
+CREATE INDEX I_NTFCTON_TEMPLATE ON Notification (template_id);
+CREATE INDEX I_NTFCNTS_NOTIFICATIONTASK_ID ON NotificationTask_recipients (notificationTask_id);
+CREATE INDEX I_NTFCNTS_NOTIFICATION_ID ON Notification_events (notification_id);
+CREATE INDEX I_NTFCNTS_NOTIFICATION_ID1 ON Notification_staticRecipients (notification_id);
+CREATE INDEX I_PSSWTNC_PASSWORDPOLICY ON PasswordRuleConfInstance (PASSWORDPOLICY_ID);
+CREATE INDEX I_PLNSCHM_ANYTYPECLASS ON PlainSchema (ANYTYPECLASS_ID);
+CREATE INDEX I_PROVSON_ANYTYPE ON Provision (ANYTYPE_ID);
+CREATE INDEX I_PROVSON_RESOURCE ON Provision (RESOURCE_ID);
+CREATE INDEX I_PRVSLSS_ELEMENT ON Provision_AnyTypeClass (anyTypeClass_id);
+CREATE INDEX I_PRVSLSS_PROVISION_ID ON Provision_AnyTypeClass (provision_id);
+CREATE INDEX I_PLLTNMS_PULLTASK_ID ON PullTask_actionsClassNames (pullTask_id);
+CREATE INDEX I_PSHTLTR_ANYTYPE ON PushTaskAnyFilter (ANYTYPE_ID);
+CREATE INDEX I_PSHTLTR_PUSHTASK ON PushTaskAnyFilter (PUSHTASK_ID);
 CREATE INDEX I_PSHTNMS_PUSHTASK_KEY ON PushTask_actionsClassNames (pushTask_key);
-CREATE INDEX I_REALM_ACCOUNTPOLICY ON Realm (ACCOUNTPOLICY_KEY);
-CREATE INDEX I_REALM_PARENT ON Realm (PARENT_KEY);
-CREATE INDEX I_REALM_PASSWORDPOLICY ON Realm (PASSWORDPOLICY_KEY);
+CREATE INDEX I_REALM_ACCOUNTPOLICY ON Realm (ACCOUNTPOLICY_ID);
+CREATE INDEX I_REALM_PARENT ON Realm (PARENT_ID);
+CREATE INDEX I_REALM_PASSWORDPOLICY ON Realm (PASSWORDPOLICY_ID);
 CREATE INDEX I_RLM_NMS_REALM_KEY ON Realm_actionsClassNames (realm_key);
-CREATE INDEX I_REPORT_TEMPLATE ON Report (template_key);
-CREATE INDEX I_RPORTXC_REPORT ON ReportExec (REPORT_KEY);
-CREATE INDEX I_RPRTTNC_REPORT ON ReportletConfInstance (REPORT_KEY);
-CREATE INDEX I_SYNCGRP_GROUPOWNER ON SyncopeGroup (GROUPOWNER_KEY);
-CREATE INDEX I_SYNCGRP_REALM ON SyncopeGroup (REALM_KEY);
-CREATE INDEX I_SYNCGRP_USEROWNER ON SyncopeGroup (USEROWNER_KEY);
-CREATE INDEX I_SYNCLSS_ELEMENT ON SyncopeGroup_AnyTypeClass (anyTypeClass_key);
-CREATE INDEX I_SYNCLSS_GROUP_KEY ON SyncopeGroup_AnyTypeClass (group_key);
-CREATE INDEX I_SYNCSRC_ELEMENT ON SyncopeGroup_ExternalResource (resource_key);
-CREATE INDEX I_SYNCSRC_GROUP_KEY ON SyncopeGroup_ExternalResource (group_key);
-CREATE INDEX I_SYNCNTS_ROLE_KEY ON SyncopeRole_entitlements (role_key);
-CREATE INDEX I_SYNCRLM_ELEMENT ON SyncopeRole_Realm (realm_key);
-CREATE INDEX I_SYNCRLM_ROLE_KEY ON SyncopeRole_Realm (role_key);
-CREATE INDEX I_SYNCPSR_REALM ON SyncopeUser (REALM_KEY);
-CREATE INDEX I_SYNCPSR_SECURITYQUESTION ON SyncopeUser (SECURITYQUESTION_KEY);
-CREATE INDEX I_SYNCLSS_ELEMENT1 ON SyncopeUser_AnyTypeClass (anyTypeClass_key);
-CREATE INDEX I_SYNCLSS_USER_KEY ON SyncopeUser_AnyTypeClass (user_key);
-CREATE INDEX I_SYNCSRC_ELEMENT1 ON SyncopeUser_ExternalResource (resource_key);
-CREATE INDEX I_SYNCSRC_USER_KEY ON SyncopeUser_ExternalResource (user_key);
-CREATE INDEX I_SYNCTRY_USER_KEY ON SyncopeUser_passwordHistory (user_key);
-CREATE INDEX I_SYNCPRL_ELEMENT ON SyncopeUser_SyncopeRole (role_key);
-CREATE INDEX I_SYNCPRL_USER_KEY ON SyncopeUser_SyncopeRole (user_key);
-CREATE INDEX I_TASK_DESTINATIONREALM ON Task (DESTINATIONREALM_KEY);
+CREATE INDEX I_REPORT_TEMPLATE ON Report (template_id);
+CREATE INDEX I_RPORTXC_REPORT ON ReportExec (REPORT_ID);
+CREATE INDEX I_RPRTTNC_REPORT ON ReportletConfInstance (REPORT_ID);
+CREATE INDEX I_SYNCGRP_GROUPOWNER ON SyncopeGroup (GROUPOWNER_ID);
+CREATE INDEX I_SYNCGRP_REALM ON SyncopeGroup (REALM_ID);
+CREATE INDEX I_SYNCGRP_USEROWNER ON SyncopeGroup (USEROWNER_ID);
+CREATE INDEX I_SYNCLSS_ELEMENT ON SyncopeGroup_AnyTypeClass (anyTypeClass_id);
+CREATE INDEX I_SYNCLSS_GROUP_ID ON SyncopeGroup_AnyTypeClass (group_id);
+CREATE INDEX I_SYNCSRC_ELEMENT ON SyncopeGroup_ExternalResource (resource_id);
+CREATE INDEX I_SYNCSRC_GROUP_ID ON SyncopeGroup_ExternalResource (group_id);
+CREATE INDEX I_SYNCNTS_ROLE_ID ON SyncopeRole_entitlements (role_id);
+CREATE INDEX I_SYNCRLM_ELEMENT ON SyncopeRole_Realm (realm_id);
+CREATE INDEX I_SYNCRLM_ROLE_ID ON SyncopeRole_Realm (role_id);
+CREATE INDEX I_SYNCPSR_REALM ON SyncopeUser (REALM_ID);
+CREATE INDEX I_SYNCPSR_SECURITYQUESTION ON SyncopeUser (SECURITYQUESTION_ID);
+CREATE INDEX I_SYNCLSS_ELEMENT1 ON SyncopeUser_AnyTypeClass (anyTypeClass_id);
+CREATE INDEX I_SYNCLSS_USER_ID ON SyncopeUser_AnyTypeClass (user_id);
+CREATE INDEX I_SYNCSRC_ELEMENT1 ON SyncopeUser_ExternalResource (resource_id);
+CREATE INDEX I_SYNCSRC_USER_ID ON SyncopeUser_ExternalResource (user_id);
+CREATE INDEX I_SYNCTRY_USER_ID ON SyncopeUser_passwordHistory (user_id);
+CREATE INDEX I_SYNCPRL_ELEMENT ON SyncopeUser_SyncopeRole (role_id);
+CREATE INDEX I_SYNCPRL_USER_ID ON SyncopeUser_SyncopeRole (user_id);
+CREATE INDEX I_TASK_DESTINATIONREALM ON Task (DESTINATIONREALM_ID);
 CREATE INDEX I_TASK_DTYPE ON Task (DTYPE);
-CREATE INDEX I_TASK_NOTIFICATION ON Task (NOTIFICATION_KEY);
-CREATE INDEX I_TASK_RESOURCE ON Task (RESOURCE_KEY);
-CREATE INDEX I_TSKEXEC_TASK ON TaskExec (TASK_KEY);
-CREATE INDEX I_TYPXNSN_ANYTYPE ON TypeExtension (ANYTYPE_KEY);
-CREATE INDEX I_TYPXNSN_GROUP ON TypeExtension (GROUP_KEY);
-CREATE INDEX I_TYPXLSS_ELEMENT ON TypeExtension_AnyTypeClass (anyTypeClass_key);
-CREATE INDEX I_TYPXLSS_TYPEEXTENSION_KEY ON TypeExtension_AnyTypeClass (typeExtension_key);
-CREATE INDEX I_DYNGSHP_GROUP1 ON UDynGroupMembership (GROUP_KEY);
-CREATE INDEX I_DYNG_SR_ELEMENT ON UDynGroupMembership_User (user_key);
-CREATE INDEX I_DYNG_SR_UDYNGROUPMEMBERSHIP_KEY ON UDynGroupMembership_User (uDynGroupMembership_key);
-CREATE INDEX I_MMBRSHP_LEFTEND ON UMembership (user_key);
-CREATE INDEX I_MMBRSHP_RIGHTEND ON UMembership (group_key);
-CREATE INDEX I_UPLNTTR_OWNER ON UPlainAttr (OWNER_KEY);
-CREATE INDEX I_UPLNTTR_SCHEMA ON UPlainAttr (schema_key);
-CREATE INDEX I_PLNTQVL_ATTRIBUTE ON UPlainAttrUniqueValue (ATTRIBUTE_KEY);
-CREATE INDEX I_PLNTQVL_SCHEMA ON UPlainAttrUniqueValue (schema_key);
-CREATE INDEX I_PLNTRVL_ATTRIBUTE ON UPlainAttrValue (ATTRIBUTE_KEY);
-CREATE INDEX I_RLTNSHP_LEFTEND ON URelationship (user_key);
-CREATE INDEX I_RLTNSHP_RIGHTEND ON URelationship (anyObject_key);
-CREATE INDEX I_RLTNSHP_TYPE ON URelationship (TYPE_KEY);
-CREATE INDEX I_VIRSCHM_ANYTYPECLASS ON VirSchema (ANYTYPECLASS_KEY);
-CREATE INDEX I_VIRSCHM_PROVISION ON VirSchema (PROVISION_KEY);
+CREATE INDEX I_TASK_NOTIFICATION ON Task (NOTIFICATION_ID);
+CREATE INDEX I_TASK_RESOURCE ON Task (RESOURCE_ID);
+CREATE INDEX I_TSKEXEC_TASK ON TaskExec (TASK_ID);
+CREATE INDEX I_TYPXNSN_ANYTYPE ON TypeExtension (ANYTYPE_ID);
+CREATE INDEX I_TYPXNSN_GROUP ON TypeExtension (GROUP_ID);
+CREATE INDEX I_TYPXLSS_ELEMENT ON TypeExtension_AnyTypeClass (anyTypeClass_id);
+CREATE INDEX I_TYPXLSS_TYPEEXTENSION_ID ON TypeExtension_AnyTypeClass (typeExtension_id);
+CREATE INDEX I_DYNGSHP_GROUP1 ON UDynGroupMembership (GROUP_ID);
+CREATE INDEX I_DYNG_SR_ELEMENT ON UDynGroupMembership_User (user_id);
+CREATE INDEX I_DYNG_SR_UDYNGROUPMEMBERSHIP_ID ON UDynGroupMembership_User (uDynGroupMembership_id);
+CREATE INDEX I_MMBRSHP_LEFTEND ON UMembership (user_id);
+CREATE INDEX I_MMBRSHP_RIGHTEND ON UMembership (group_id);
+CREATE INDEX I_UPLNTTR_OWNER ON UPlainAttr (OWNER_ID);
+CREATE INDEX I_UPLNTTR_SCHEMA ON UPlainAttr (schema_id);
+CREATE INDEX I_PLNTQVL_ATTRIBUTE ON UPlainAttrUniqueValue (ATTRIBUTE_ID);
+CREATE INDEX I_PLNTQVL_SCHEMA ON UPlainAttrUniqueValue (schema_id);
+CREATE INDEX I_PLNTRVL_ATTRIBUTE ON UPlainAttrValue (ATTRIBUTE_ID);
+CREATE INDEX I_RLTNSHP_LEFTEND ON URelationship (user_id);
+CREATE INDEX I_RLTNSHP_RIGHTEND ON URelationship (anyObject_id);
+CREATE INDEX I_RLTNSHP_TYPE ON URelationship (TYPE_ID);
+CREATE INDEX I_VIRSCHM_ANYTYPECLASS ON VirSchema (ANYTYPECLASS_ID);
+CREATE INDEX I_VIRSCHM_PROVISION ON VirSchema (PROVISION_ID);