You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by to...@apache.org on 2007/12/19 16:15:11 UTC

svn commit: r605572 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne: dba/hsqldb/ dba/postgres/ dba/sqlserver/ merge/

Author: torehalset
Date: Wed Dec 19 07:15:11 2007
New Revision: 605572

URL: http://svn.apache.org/viewvc?rev=605572&view=rev
Log:
CAY-937: Database Schema Migration does not create FK constraints
 * tested on MS SQL Server
 * better default for drop foreign key

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLMergerFactory.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresMergerFactory.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerMergerFactory.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DropRelationshipToDb.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLMergerFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLMergerFactory.java?rev=605572&r1=605571&r2=605572&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLMergerFactory.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLMergerFactory.java Wed Dec 19 07:15:11 2007
@@ -18,14 +18,8 @@
  ****************************************************************/
 package org.apache.cayenne.dba.hsqldb;
 
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.merge.DropRelationshipToDb;
 import org.apache.cayenne.merge.MergerFactory;
 import org.apache.cayenne.merge.MergerToken;
 import org.apache.cayenne.merge.SetColumnTypeToDb;
@@ -47,32 +41,6 @@
                 sqlBuffer.append(" ALTER ");
                 sqlBuffer.append(columnNew.getName());
                 sqlBuffer.append(" ");
-            }
-        };
-    }
-
-    @Override
-    public MergerToken createDropRelationshipToDb(
-            final DbEntity entity,
-            final DbRelationship rel) {
-
-        return new DropRelationshipToDb(entity, rel) {
-
-            @Override
-            public List<String> createSql(DbAdapter adapter) {
-                String fkName = getFkName();
-
-                if (fkName == null) {
-                    return Collections.emptyList();
-                }
-
-                StringBuilder buf = new StringBuilder();
-                buf.append("ALTER TABLE ");
-                buf.append(entity.getFullyQualifiedName());
-                buf.append(" DROP CONSTRAINT ");
-                buf.append(fkName);
-
-                return Collections.singletonList(buf.toString());
             }
         };
     }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresMergerFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresMergerFactory.java?rev=605572&r1=605571&r2=605572&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresMergerFactory.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresMergerFactory.java Wed Dec 19 07:15:11 2007
@@ -18,14 +18,8 @@
  ****************************************************************/
 package org.apache.cayenne.dba.postgres;
 
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.merge.DropRelationshipToDb;
 import org.apache.cayenne.merge.MergerFactory;
 import org.apache.cayenne.merge.MergerToken;
 import org.apache.cayenne.merge.SetColumnTypeToDb;
@@ -52,30 +46,4 @@
         };
     }
 
-    @Override
-    public MergerToken createDropRelationshipToDb(
-            final DbEntity entity,
-            final DbRelationship rel) {
-
-        return new DropRelationshipToDb(entity, rel) {
-
-            @Override
-            public List<String> createSql(DbAdapter adapter) {
-                String fkName = getFkName();
-                
-                if (fkName == null) {
-                    return Collections.emptyList();
-                }
-
-                // http://www.postgresql.org/docs/8.2/static/sql-altertable.html
-                StringBuilder buf = new StringBuilder();
-                buf.append("ALTER TABLE ");
-                buf.append(entity.getFullyQualifiedName());
-                buf.append(" DROP CONSTRAINT ");
-                buf.append(fkName);
-
-                return Collections.singletonList(buf.toString());
-            }
-        };
-    }
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerMergerFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerMergerFactory.java?rev=605572&r1=605571&r2=605572&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerMergerFactory.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerMergerFactory.java Wed Dec 19 07:15:11 2007
@@ -35,6 +35,7 @@
 
         return new SetColumnTypeToDb(entity, columnOriginal, columnNew) {
 
+            @Override
             protected void appendPrefix(StringBuffer sqlBuffer) {
                 // http://msdn2.microsoft.com/en-us/library/ms190273.aspx
                 sqlBuffer.append("ALTER TABLE ");
@@ -47,11 +48,10 @@
     }
 
     @Override
-    public MergerToken createAddColumnToDb(
-            final DbEntity entity,
-            final DbAttribute column) {
+    public MergerToken createAddColumnToDb(final DbEntity entity, final DbAttribute column) {
         return new AddColumnToDb(entity, column) {
 
+            @Override
             protected void appendPrefix(StringBuffer sqlBuffer) {
                 // http://msdn2.microsoft.com/en-us/library/ms190273.aspx
                 sqlBuffer.append("ALTER TABLE ");
@@ -62,4 +62,5 @@
             }
         };
     }
+
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DropRelationshipToDb.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DropRelationshipToDb.java?rev=605572&r1=605571&r2=605572&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DropRelationshipToDb.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/merge/DropRelationshipToDb.java Wed Dec 19 07:15:11 2007
@@ -54,7 +54,7 @@
         StringBuilder buf = new StringBuilder();
         buf.append("ALTER TABLE ");
         buf.append(entity.getFullyQualifiedName());
-        buf.append(" DROP FOREIGN KEY ");
+        buf.append(" DROP CONSTRAINT ");
         buf.append(fkName);
 
         return Collections.singletonList(buf.toString());