[exo-jcr-commits] exo-jcr SVN: r5108 - in jcr/trunk/exo.jcr.component.core/src/main: java/org/exoplatform/services/jcr/impl/util/jdbc and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Oct 27 04:07:04 EDT 2011


Author: tolusha
Date: 2011-10-27 04:07:02 -0400 (Thu, 27 Oct 2011)
New Revision: 5108

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java
   jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql-utf8.sql
   jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql.sql
   jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql-utf8.sql
   jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql.sql
Log:
EXOJCR-1509: restore previous script for table creation for MySQL

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java	2011-10-27 06:23:13 UTC (rev 5107)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java	2011-10-27 08:07:02 UTC (rev 5108)
@@ -183,13 +183,13 @@
 
          ArrayList<String> dbCleanerScripts = new ArrayList<String>();
          dbCleanerScripts.addAll(getRenameScripts(isMultiDB, dialect));
-         dbCleanerScripts.addAll(prepareInirializationScript(getInitializationDBScript(isMultiDB, dialect), isMultiDB,
+         dbCleanerScripts.addAll(getTableCreationScript(getInitializationDBScript(isMultiDB, dialect), isMultiDB,
             dialect));
-         dbCleanerScripts.addAll(getPreTablesRestoreScript(isMultiDB, dialect));
+         dbCleanerScripts.addAll(getRemoveIndexesScript(isMultiDB, dialect));
 
          ArrayList<String> afterRestoreScript = new ArrayList<String>();
-         afterRestoreScript.addAll(getAfterRestoreScript(isMultiDB, dialect));
-         afterRestoreScript.addAll(getPostTablesRestoreScript(isMultiDB, dialect));
+         afterRestoreScript.addAll(getRemoveOldObjectsScript(isMultiDB, dialect));
+         afterRestoreScript.addAll(getRestoreIndexesScript(isMultiDB, dialect));
 
          return new DBCleaner(jdbcConn, dbCleanerScripts, getRollbackRenamedScript(isMultiDB, dialect),
             afterRestoreScript);
@@ -198,9 +198,9 @@
       ArrayList<String> dbCleanerScripts = new ArrayList<String>();
       dbCleanerScripts.addAll(getDropTableScripts(isMultiDB, dialect));
       dbCleanerScripts.addAll(getInitializationDBScript(isMultiDB, dialect));
-      dbCleanerScripts.addAll(getPreTablesRestoreScript(isMultiDB, dialect));
+      dbCleanerScripts.addAll(getRemoveIndexesScript(isMultiDB, dialect));
 
-      return new DBCleaner(jdbcConn, dbCleanerScripts, new ArrayList<String>(), getPostTablesRestoreScript(isMultiDB,
+      return new DBCleaner(jdbcConn, dbCleanerScripts, new ArrayList<String>(), getRestoreIndexesScript(isMultiDB,
          dialect));
 
    }
@@ -216,7 +216,7 @@
     *          string, dialect of DB
     * @return List with database initialization scripts
     */
-   private static Collection<? extends String> prepareInirializationScript(List<String> initializationDBScript,
+   private static Collection<? extends String> getTableCreationScript(List<String> initializationDBScript,
       boolean isMultiDB, String dialect)
    {
       if (dialect.equals(DBConstants.DB_DIALECT_MYSQL) || dialect.equals(DBConstants.DB_DIALECT_MYSQL_UTF8))
@@ -226,12 +226,26 @@
          for (int i = 0; i < initializationDBScript.size(); i++)
          {
             String query = initializationDBScript.get(i);
-            if (query.contains("JCR_FK_" + multiDb + "ITEM_PARENT")
-               || query.contains("JCR_FK_" + multiDb + "VALUE_PROPERTY"))
+            if (query.contains("JCR_PK_" + multiDb + "ITEM PRIMARY KEY(ID),"))
             {
-               initializationDBScript.remove(i);
-               i--;
+               query =
+                  query.replace("JCR_PK_" + multiDb + "ITEM PRIMARY KEY(ID),", "JCR_PK_" + multiDb
+                  + "ITEM PRIMARY KEY(ID)");
+               query =
+                  query.replace("CONSTRAINT JCR_FK_" + multiDb + "ITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_"
+                  + multiDb + "ITEM(ID)", "");
+               initializationDBScript.set(i, query);
             }
+            else if (query.contains("CONSTRAINT JCR_PK_" + multiDb + "VALUE PRIMARY KEY(ID),"))
+            {
+               query =
+                  query.replace("CONSTRAINT JCR_PK_" + multiDb + "VALUE PRIMARY KEY(ID),", "CONSTRAINT JCR_PK_"
+                     + multiDb + "VALUE PRIMARY KEY(ID)");
+               query =
+                  query.replace("CONSTRAINT JCR_FK_" + multiDb
+                     + "VALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_" + multiDb + "ITEM(ID)", "");
+               initializationDBScript.set(i, query);
+            }
          }
       }
       else if (dialect.equals(DBConstants.DB_DIALECT_SYBASE))
@@ -264,13 +278,12 @@
     * @param dialect
     *          String, dialect of DB
     */
-   private static List<String> getPreTablesRestoreScript(boolean isMultiDB, String dialect)
+   private static List<String> getRemoveIndexesScript(boolean isMultiDB, String dialect)
    {
       ArrayList<String> dropScript = new ArrayList<String>();
 
       String multiDb = isMultiDB ? "M" : "S";
       String constraintName;
-      String constraint;
 
       if (dialect.equals(DBConstants.DB_DIALECT_MYSQL) || dialect.equals(DBConstants.DB_DIALECT_MYSQL))
       {
@@ -278,29 +291,23 @@
       }
 
       constraintName = validateConstraintName("JCR_FK_" + multiDb + "ITEM_PARENT", dialect);
-      constraint = "CONSTRAINT " + constraintName + " FOREIGN KEY(PARENT_ID) REFERENCES JCR_" + multiDb + "ITEM(ID)";
       dropScript.add("ALTER TABLE JCR_" + multiDb + "ITEM " + dropCommand(false, constraintName, dialect));
 
       if (dialect.equals(DBConstants.DB_DIALECT_ORACLE) || dialect.equals(DBConstants.DB_DIALECT_ORACLEOCI))
       {
          constraintName = validateConstraintName("JCR_PK_" + multiDb + "VALUE", dialect);
-         constraint = "CONSTRAINT " + constraintName + " PRIMARY KEY(ID)";
          dropScript.add("ALTER TABLE JCR_" + multiDb + "VALUE " + dropCommand(true, constraintName, dialect));
 
          constraintName = validateConstraintName("JCR_FK_" + multiDb + "VALUE_PROPERTY", dialect);
-         constraint =
-            "CONSTRAINT " + constraintName + " FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_" + multiDb + "ITEM(ID)";
          dropScript.add("ALTER TABLE JCR_" + multiDb + "VALUE " + dropCommand(false, constraintName, dialect));
 
          constraintName = validateConstraintName("JCR_PK_" + multiDb + "ITEM", dialect);
          dropScript.add("ALTER TABLE JCR_" + multiDb + "ITEM " + dropCommand(true, constraintName, dialect));
 
          constraintName = validateConstraintName("JCR_PK_" + multiDb + "REF", dialect);
-         constraint = "CONSTRAINT " + constraintName + " PRIMARY KEY(NODE_ID, PROPERTY_ID, ORDER_NUM)";
          dropScript.add("ALTER TABLE JCR_" + multiDb + "REF " + dropCommand(true, constraintName, dialect));
 
          constraintName = validateConstraintName("JCR_PK_" + multiDb + "CONTAINER", dialect);
-         constraint = "CONSTRAINT " + constraintName + " PRIMARY KEY(VERSION)";
          dropScript.add("ALTER TABLE JCR_" + multiDb + "CONTAINER " + dropCommand(true, constraintName, dialect));
 
          dropScript.add("DROP INDEX JCR_IDX_" + multiDb + "ITEM_PARENT_FK");
@@ -328,7 +335,7 @@
     * @param dialect
     *          String, dialect of DB
     */
-   private static List<String> getPostTablesRestoreScript(boolean isMultiDB, String dialect)
+   private static List<String> getRestoreIndexesScript(boolean isMultiDB, String dialect)
       throws RepositoryConfigurationException
    {
       ArrayList<String> addScript = new ArrayList<String>();
@@ -707,17 +714,10 @@
          rollbackScripts.add("ALTER TABLE JCR_" + isMultiDB + "ITEM" + OLD_OBJECT_SUFFIX + " RENAME TO JCR_"
             + isMultiDB + "ITEM");
 
-         rollbackScripts.add("ALTER TABLE JCR_" + isMultiDB + "ITEM ADD CONSTRAINT JCR_FK_" + isMultiDB
-            + "ITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_" + isMultiDB + "ITEM(ID)");
-
          rollbackScripts.add("ALTER TABLE JCR_" + isMultiDB + "VALUE" + OLD_OBJECT_SUFFIX + " RENAME TO JCR_"
             + isMultiDB + "VALUE");
-         rollbackScripts.add("ALTER TABLE JCR_" + isMultiDB + "VALUE ADD CONSTRAINT JCR_FK_" + isMultiDB
-            + "VALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_" + isMultiDB + "ITEM(ID)");
-
          rollbackScripts.add("ALTER TABLE JCR_" + isMultiDB + "CONTAINER" + OLD_OBJECT_SUFFIX + " RENAME TO JCR_"
             + isMultiDB + "CONTAINER");
-
          rollbackScripts.add("ALTER TABLE JCR_" + isMultiDB + "REF" + OLD_OBJECT_SUFFIX + " RENAME TO JCR_" + isMultiDB
             + "REF");
       }
@@ -794,7 +794,7 @@
     * @return List 
     *           return list with query
     */
-   protected static List<String> getAfterRestoreScript(boolean multiDb, String dialect)
+   protected static List<String> getRemoveOldObjectsScript(boolean multiDb, String dialect)
    {
       List<String> afterRetoreScripts = new ArrayList<String>();
 
@@ -878,18 +878,18 @@
             jdbcConn.setAutoCommit(false);
          }
 
-         ArrayList<String> dbCleanerScripts = new ArrayList<String>();
-         dbCleanerScripts.addAll(getRenameScripts(isMultiDB, dialect));
-         dbCleanerScripts.addAll(prepareInirializationScript(getInitializationDBScript(isMultiDB, dialect), isMultiDB,
+         ArrayList<String> cleanScripts = new ArrayList<String>();
+         cleanScripts.addAll(getRenameScripts(isMultiDB, dialect));
+         cleanScripts.addAll(getTableCreationScript(getInitializationDBScript(isMultiDB, dialect), isMultiDB,
             dialect));
-         dbCleanerScripts.addAll(getPreTablesRestoreScript(isMultiDB, dialect));
+         cleanScripts.addAll(getRemoveIndexesScript(isMultiDB, dialect));
 
-         ArrayList<String> afterRestoreScript = new ArrayList<String>();
-         afterRestoreScript.addAll(getAfterRestoreScript(isMultiDB, dialect));
-         afterRestoreScript.addAll(getPostTablesRestoreScript(isMultiDB, dialect));
+         ArrayList<String> commitScript = new ArrayList<String>();
+         commitScript.addAll(getRemoveOldObjectsScript(isMultiDB, dialect));
+         commitScript.addAll(getRestoreIndexesScript(isMultiDB, dialect));
 
-         return new DBCleaner(jdbcConn, dbCleanerScripts, getRollbackRenamedScript(isMultiDB, dialect),
-            afterRestoreScript);
+         return new DBCleaner(jdbcConn, cleanScripts, getRollbackRenamedScript(isMultiDB, dialect),
+            commitScript);
       }
       else
       {
@@ -897,9 +897,9 @@
          
          cleanScripts.addAll(getDropTableScripts(isMultiDB, dialect));
          cleanScripts.addAll(getInitializationDBScript(isMultiDB, dialect));
-         cleanScripts.addAll(getPreTablesRestoreScript(isMultiDB, dialect));
+         cleanScripts.addAll(getRemoveIndexesScript(isMultiDB, dialect));
 
-         return new DBCleaner(jdbcConn, cleanScripts, new ArrayList<String>(), getPostTablesRestoreScript(
+         return new DBCleaner(jdbcConn, cleanScripts, new ArrayList<String>(), getRestoreIndexesScript(
             isMultiDB, dialect));
       }
    }

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java	2011-10-27 06:23:13 UTC (rev 5107)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/DBInitializer.java	2011-10-27 08:07:02 UTC (rev 5108)
@@ -47,8 +47,6 @@
 
    static public String SQL_CREATETABLE = "^(CREATE(\\s)+TABLE(\\s)+(IF(\\s)+NOT(\\s)+EXISTS(\\s)+)*){1}";
 
-   static public String SQL_ALTERTABLE = "^(ALTER(\\s)+TABLE(\\s)+(IF(\\s)+NOT(\\s)+EXISTS(\\s)+)*){1}";
-
    static public String SQL_CREATEVIEW = "^(CREATE(\\s)+VIEW(\\s)+(IF(\\s)+NOT(\\s)+EXISTS(\\s)+)*){1}";
 
    static public String SQL_OBJECTNAME = "((JCR_[A-Z_]+){1}(\\s*?|(\\(\\))*?)+)+?";
@@ -73,8 +71,6 @@
 
    protected final Pattern creatTablePattern;
 
-   protected final Pattern alterTablePattern;
-
    protected final Pattern creatViewPattern;
 
    protected final Pattern dbObjectNamePattern;
@@ -96,7 +92,6 @@
       this.script = script(scriptPath);
 
       this.creatTablePattern = Pattern.compile(SQL_CREATETABLE, Pattern.CASE_INSENSITIVE);
-      this.alterTablePattern = Pattern.compile(SQL_ALTERTABLE, Pattern.CASE_INSENSITIVE);
       this.creatViewPattern = Pattern.compile(SQL_CREATEVIEW, Pattern.CASE_INSENSITIVE);
       this.dbObjectNamePattern = Pattern.compile(SQL_OBJECTNAME, Pattern.CASE_INSENSITIVE);
       this.creatIndexPattern = Pattern.compile(SQL_CREATEINDEX, Pattern.CASE_INSENSITIVE);
@@ -149,25 +144,6 @@
             }
          }
       }
-      else if ((tMatcher = alterTablePattern.matcher(sql)).find())
-      {
-         // CREATE TABLE
-         tMatcher = dbObjectNamePattern.matcher(sql);
-         if (tMatcher.find())
-         {
-            // got table name
-            String tableName = sql.substring(tMatcher.start(), tMatcher.end());
-            if (isTableExists(conn, tableName))
-            {
-               if (LOG.isDebugEnabled())
-               {
-                  LOG.debug("Table is already exists " + tableName);
-               }
-               existingTables.add(tableName);
-               return true;
-            }
-         }
-      }
       else if ((tMatcher = creatViewPattern.matcher(sql)).find())
       {
          // CREATE VIEW

Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql-utf8.sql
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql-utf8.sql	2011-10-27 06:23:13 UTC (rev 5107)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql-utf8.sql	2011-10-27 08:07:02 UTC (rev 5108)
@@ -12,9 +12,9 @@
 	N_ORDER_NUM INTEGER,
 	P_TYPE INTEGER, 
 	P_MULTIVALUED BOOLEAN,	
-	CONSTRAINT JCR_PK_MITEM PRIMARY KEY(ID)
+	CONSTRAINT JCR_PK_MITEM PRIMARY KEY(ID),
+	CONSTRAINT JCR_FK_MITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_MITEM(ID)
 ) ENGINE=InnoDB;
-ALTER TABLE JCR_MITEM ADD CONSTRAINT JCR_FK_MITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_MITEM(ID);
 CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT ON JCR_MITEM(PARENT_ID, NAME(255), I_INDEX, I_CLASS, VERSION DESC);
 CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_NAME ON JCR_MITEM(I_CLASS, PARENT_ID, NAME(255), I_INDEX, VERSION DESC);
 CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
@@ -25,9 +25,9 @@
 	ORDER_NUM INTEGER NOT NULL, 
 	PROPERTY_ID VARCHAR(56) NOT NULL,
 	STORAGE_DESC VARCHAR(512),
-	CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID)
+	CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+	CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
 ) ENGINE=InnoDB;
-ALTER TABLE JCR_MVALUE ADD CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID); 
 CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
 CREATE INDEX JCR_IDX_MVALUE_STORAGE_DESC ON JCR_MVALUE(PROPERTY_ID, STORAGE_DESC);
 CREATE TABLE JCR_MREF(

Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql.sql
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql.sql	2011-10-27 06:23:13 UTC (rev 5107)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql.sql	2011-10-27 08:07:02 UTC (rev 5108)
@@ -12,9 +12,9 @@
 	N_ORDER_NUM INTEGER,
 	P_TYPE INTEGER, 
 	P_MULTIVALUED BOOLEAN,	
-	CONSTRAINT JCR_PK_MITEM PRIMARY KEY(ID)
+	CONSTRAINT JCR_PK_MITEM PRIMARY KEY(ID),
+	CONSTRAINT JCR_FK_MITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_MITEM(ID)
 )  ENGINE=InnoDB;
-ALTER TABLE JCR_MITEM ADD CONSTRAINT JCR_FK_MITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_MITEM(ID);
 CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT ON JCR_MITEM(PARENT_ID, NAME, I_INDEX, I_CLASS, VERSION DESC);
 CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_NAME ON JCR_MITEM(I_CLASS, PARENT_ID, NAME, I_INDEX, VERSION DESC);
 CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
@@ -25,9 +25,9 @@
 	ORDER_NUM INTEGER NOT NULL, 
 	PROPERTY_ID VARCHAR(96) NOT NULL,
 	STORAGE_DESC VARCHAR(512),
-	CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID)
+	CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+	CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
 )  ENGINE=InnoDB;
-ALTER TABLE JCR_MVALUE ADD CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID);
 CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
 CREATE INDEX JCR_IDX_MVALUE_STORAGE_DESC ON JCR_MVALUE(PROPERTY_ID, STORAGE_DESC);
 CREATE TABLE JCR_MREF(

Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql-utf8.sql
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql-utf8.sql	2011-10-27 06:23:13 UTC (rev 5107)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql-utf8.sql	2011-10-27 08:07:02 UTC (rev 5108)
@@ -14,8 +14,8 @@
 	P_TYPE INTEGER, 
 	P_MULTIVALUED BOOLEAN,	
 	CONSTRAINT JCR_PK_SITEM PRIMARY KEY(ID)
+	CONSTRAINT JCR_FK_SITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_SITEM(ID)
 ) ENGINE=InnoDB;
-ALTER TABLE JCR_SITEM ADD CONSTRAINT JCR_FK_SITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_SITEM(ID);
 CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT ON JCR_SITEM(CONTAINER_NAME, PARENT_ID, NAME(255), I_INDEX, I_CLASS, VERSION DESC);
 CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_NAME ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, NAME(255), I_INDEX, VERSION DESC);
 CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
@@ -27,8 +27,8 @@
 	PROPERTY_ID VARCHAR(56) NOT NULL,
 	STORAGE_DESC VARCHAR(512),
 	CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID)
+	CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
 ) ENGINE=InnoDB;
-ALTER TABLE JCR_SVALUE ADD CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID);
 CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
 CREATE INDEX JCR_IDX_SVALUE_STORAGE_DESC ON JCR_SVALUE(PROPERTY_ID, STORAGE_DESC);
 CREATE TABLE JCR_SREF(

Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql.sql
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql.sql	2011-10-27 06:23:13 UTC (rev 5107)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql.sql	2011-10-27 08:07:02 UTC (rev 5108)
@@ -13,9 +13,9 @@
 	N_ORDER_NUM INTEGER,
 	P_TYPE INTEGER, 
 	P_MULTIVALUED BOOLEAN,	
-	CONSTRAINT JCR_PK_SITEM PRIMARY KEY(ID)
+	CONSTRAINT JCR_PK_SITEM PRIMARY KEY(ID),
+	CONSTRAINT JCR_FK_SITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_SITEM(ID)
 ) ENGINE=InnoDB;
-ALTER TABLE JCR_SITEM ADD CONSTRAINT JCR_FK_SITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_SITEM(ID);
 CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT ON JCR_SITEM(CONTAINER_NAME, PARENT_ID, NAME, I_INDEX, I_CLASS, VERSION DESC);
 CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_NAME ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, NAME, I_INDEX, VERSION DESC);
 CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
@@ -26,9 +26,9 @@
 	ORDER_NUM INTEGER NOT NULL,
 	PROPERTY_ID VARCHAR(96) NOT NULL,
 	STORAGE_DESC VARCHAR(512),
-	CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID)
+	CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+	CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
 ) ENGINE=InnoDB;
-ALTER TABLE JCR_SVALUE ADD CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID);
 CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
 CREATE INDEX JCR_IDX_SVALUE_STORAGE_DESC ON JCR_SVALUE(PROPERTY_ID, STORAGE_DESC);
 CREATE TABLE JCR_SREF(



More information about the exo-jcr-commits mailing list