branch develop updated (c4e11be -> 05417d3)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from c4e11be [jgitflow-maven-plugin]Updating develop poms back to pre merge state new 983f525 fix migration 4.0-RC6 (refs #7145) new c7d5e9f fixes #7145: Echec de la mise à jour de la version 4.0 RC5 vers RC6 en base locale Merge branch 'feature/7145' into develop new 36d60b8 fix pg migration (refs #7145) new 05417d3 fix third parties The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 05417d34637906527a23c7ff871cf83dcbd4b60f Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue May 26 16:32:37 2015 +0200 fix third parties commit 36d60b8f841edcde3502c95bca1c13a5dc2429a9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue May 26 16:32:25 2015 +0200 fix pg migration (refs #7145) commit c7d5e9f77f522db01eb68d12e22a369081c7bce9 Merge: c4e11be 983f525 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue May 26 16:22:49 2015 +0200 fixes #7145: Echec de la mise à jour de la version 4.0 RC5 vers RC6 en base locale Merge branch 'feature/7145' into develop commit 983f525242e6b817fdfcd4665f94c925c6ff624c Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue May 26 16:22:20 2015 +0200 fix migration 4.0-RC6 (refs #7145) Summary of changes: .../entities/migration/H2DataSourceMigration.java | 46 +++++++++++ .../entities/migration/PGDataSourceMigration.java | 88 ++++++++++++++++++++++ .../DataSourceMigrationForVersion_4_0_RC6.java | 22 +++++- .../db/4.0-RC6/fix-gearUseFeatures-topiaIds-H2.sql | 2 +- .../db/4.0-RC6/fix-gearUseFeatures-topiaIds-PG.sql | 2 +- observe-swing/src/license/THIRD-PARTY.properties | 6 +- 6 files changed, 162 insertions(+), 4 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 983f525242e6b817fdfcd4665f94c925c6ff624c Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue May 26 16:22:20 2015 +0200 fix migration 4.0-RC6 (refs #7145) --- .../entities/migration/H2DataSourceMigration.java | 46 +++++++++++ .../entities/migration/PGDataSourceMigration.java | 88 ++++++++++++++++++++++ .../DataSourceMigrationForVersion_4_0_RC6.java | 22 +++++- .../db/4.0-RC6/fix-gearUseFeatures-topiaIds-H2.sql | 2 +- .../db/4.0-RC6/fix-gearUseFeatures-topiaIds-PG.sql | 2 +- 5 files changed, 157 insertions(+), 3 deletions(-) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/H2DataSourceMigration.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/H2DataSourceMigration.java index 18017a0..cf125fb 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/H2DataSourceMigration.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/H2DataSourceMigration.java @@ -183,6 +183,41 @@ public class H2DataSourceMigration extends AbstractDataSourceMigration { return result; } + public static String getForeignKeyConstraintName(TopiaContextImplementor tx, final String schemaName, final String tableName, final String columnName) throws TopiaException { + + final List<String> result = new ArrayList<String>(); + + tx.getHibernate().doWork(new Work() { + + @Override + public void execute(Connection connection) throws SQLException { + String sql = String.format("SELECT DISTINCT constraint_name FROM INFORMATION_SCHEMA.Constraints " + + "WHERE CONSTRAINT_TYPE='REFERENTIAL' " + + "AND CONSTRAINT_SCHEMA='%S' " + + "AND TABLE_NAME='%S' " + + "AND COLUMN_LIST='%S';" , schemaName, tableName, columnName); + PreparedStatement ps = connection.prepareStatement(sql); + try { + ResultSet set = ps.executeQuery(); + while (set.next()) { + String constraintName = set.getString(1); + result.add(constraintName); + } + } catch (Exception e) { + throw new SQLException("Could not obtain constraints for table " + tableName, e); + } finally { + ps.close(); + } + } + }); + + if (result.isEmpty()) { + throw new IllegalStateException("Could not find constaint name for "+schemaName+"."+tableName+"."+columnName); + } + return result.get(0); + + } + public static Set<String> getUniqueKeyConstraintNames(TopiaContextImplementor tx, final String tableName) throws TopiaException { @@ -223,6 +258,17 @@ public class H2DataSourceMigration extends AbstractDataSourceMigration { } + public static void removeFK(TopiaContextImplementor tx, String schemaName, String tableName,String columnName, List<String> queries) throws TopiaException { + + // Get fk constraints + String contrainstName = getForeignKeyConstraintName(tx, schemaName, tableName, columnName); + + // remove constraints + queries.add(String.format("ALTER TABLE %s.%s DROP CONSTRAINT %s;", schemaName, tableName, contrainstName)); + + } + + public static void removeUK(TopiaContextImplementor tx, String tableName, List<String> queries) throws TopiaException { // Get uk constraints diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/PGDataSourceMigration.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/PGDataSourceMigration.java index f4742cb..99a233b 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/PGDataSourceMigration.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/PGDataSourceMigration.java @@ -227,6 +227,84 @@ public class PGDataSourceMigration extends AbstractDataSourceMigration { } + public static String getForeignKeyConstraintName(TopiaContextImplementor tx, final String schemaName, final String tableName, final String columnName) throws TopiaException { + + final List<String> result = new ArrayList<String>(); + + tx.getHibernate().doWork(new Work() { + + @Override + public void execute(Connection connection) throws SQLException { + + + // get table oid + String oid = null; + + String sqlOid = "select oid from pg_class where relnamespace = (select oid from pg_catalog.pg_namespace where nspname=?) AND relname=?;"; + { + PreparedStatement ps = connection.prepareStatement(sqlOid); + ps.setString(1, schemaName.toLowerCase()); + ps.setString(2, tableName.toLowerCase()); + try { + ResultSet set = ps.executeQuery(); + if (set.next()) { + oid = set.getString(1); + if (log.isDebugEnabled()) + log.debug("found table oid " + tableName + ": " + oid); + } + } catch (Exception e) { + throw new SQLException("Could not obtain oid for table" + tableName, e); + } finally { + ps.close(); + } + } + + // get attribute num + String attNumSql = "select attnum from pg_attribute where attrelid=? AND attname =?"; + String attNum; + { + PreparedStatement ps = connection.prepareStatement(attNumSql); + ps.setInt(1, Integer.valueOf(oid)); + ps.setString(2, columnName.toLowerCase()); + try { + ResultSet set = ps.executeQuery(); + if (set.next()) { + attNum = set.getString(1); + if (log.isDebugEnabled()) + log.debug("found attribute " + columnName + " attNum : " + attNum); + } + } catch (Exception e) { + throw new SQLException("Could not obtain attNum for column" + columnName, e); + } finally { + ps.close(); + } + } + + String sql = "SELECT DISTINCT conname FROM pg_constraint WHERE contype='f' AND conrelid = ? AND conkey = '{\" + attNum + \"}';"; + PreparedStatement ps = connection.prepareStatement(sql); + ps.setInt(1, Integer.valueOf(oid)); + + try { + ResultSet set = ps.executeQuery(); + while (set.next()) { + String constraintName = set.getString(1); + result.add(constraintName); + } + } catch (Exception e) { + throw new SQLException("Could not obtain constraints for table " + tableName, e); + } finally { + ps.close(); + } + } + }); + + if (result.isEmpty()) { + throw new IllegalStateException("Could not find constaint name for "+schemaName+"."+tableName+"."+columnName); + } + return result.get(0); + + } + public static Set<String> getUniqueKeyConstraintNames(TopiaContextImplementor tx, final String tableName) throws TopiaException { final Set<String> result = new HashSet<String>(); @@ -266,6 +344,16 @@ public class PGDataSourceMigration extends AbstractDataSourceMigration { } + public static void removeFK(TopiaContextImplementor tx, String schemaName, String tableName,String columnName, List<String> queries) throws TopiaException { + + // Get fk constraints + String contrainstName = getForeignKeyConstraintName(tx, schemaName, tableName, columnName); + + // remove constraints + queries.add(String.format("ALTER TABLE %s.%s DROP CONSTRAINT %s;", schemaName, tableName, contrainstName)); + + } + public static void removeUK(TopiaContextImplementor tx, String tableName, List<String> queries) throws TopiaException { // Get uk constraints diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_RC6.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_RC6.java index 7cd1a59..9b23014 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_RC6.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_RC6.java @@ -37,29 +37,42 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 4.0-RC6 */ -public class DataSourceMigrationForVersion_4_0_RC6 extends AbstractObserveMigrationCallBack { +public abstract class DataSourceMigrationForVersion_4_0_RC6 extends AbstractObserveMigrationCallBack { public DataSourceMigrationForVersion_4_0_RC6(AbstractDataSourceMigration callBack, String scriptSuffix) { super(AbstractDataSourceMigration.V_4_0_RC6, callBack, scriptSuffix); } + protected abstract void removeForeignKeyOnGearFseFeaturesMeasurementSeine(TopiaContextImplementor tx, List<String> queries); + @Override protected void prepareMigrationScript(TopiaContextImplementor tx, List<String> queries, boolean showSql, boolean showProgression) throws TopiaException { + // See https://forge.codelutin.com/issues/7145 + removeForeignKeyOnGearFseFeaturesMeasurementSeine(tx, queries); + // See https://forge.codelutin.com/issues/7142 addScript("fix-gearUseFeatures-topiaIds", queries); } + public static class H2DataSourceMigrationForVersion extends DataSourceMigrationForVersion_4_0_RC6 { public H2DataSourceMigrationForVersion(AbstractDataSourceMigration callBack) { super(callBack, H2DataSourceMigration.TYPE); } + @Override + protected void removeForeignKeyOnGearFseFeaturesMeasurementSeine(TopiaContextImplementor tx, List<String> queries) { + + H2DataSourceMigration.removeFK(tx, "observe_seine", "GEARUSEFEATURESMEASUREMENT", "GEARUSEFEATURES", queries); + + } + } public static class PGDataSourceMigrationForVersion extends DataSourceMigrationForVersion_4_0_RC6 { @@ -68,5 +81,12 @@ public class DataSourceMigrationForVersion_4_0_RC6 extends AbstractObserveMigrat super(callBack, PGDataSourceMigration.TYPE); } + @Override + protected void removeForeignKeyOnGearFseFeaturesMeasurementSeine(TopiaContextImplementor tx, List<String> queries) { + + PGDataSourceMigration.removeFK(tx, "observe_seine", "GEARUSEFEATURESMEASUREMENT", "GEARUSEFEATURES", queries); + + } + } } diff --git a/observe-entities/src/main/resources/db/4.0-RC6/fix-gearUseFeatures-topiaIds-H2.sql b/observe-entities/src/main/resources/db/4.0-RC6/fix-gearUseFeatures-topiaIds-H2.sql index f3be214..37968f3 100644 --- a/observe-entities/src/main/resources/db/4.0-RC6/fix-gearUseFeatures-topiaIds-H2.sql +++ b/observe-entities/src/main/resources/db/4.0-RC6/fix-gearUseFeatures-topiaIds-H2.sql @@ -20,7 +20,7 @@ -- #L% --- UPDATE OBSERVE_SEINE.gearusefeaturesmeasurement SET topiaid = replace(topiaid, 'GearUseFeaturesMeasurement#', 'GearUseFeaturesMeasurementSeine#'); -ALTER TABLE OBSERVE_SEINE.gearusefeaturesmeasurement DROP CONSTRAINT fk_gearusefeaturesmeasurement_gearusefeatures; +--ALTER TABLE OBSERVE_SEINE.gearusefeaturesmeasurement DROP CONSTRAINT fk_gearusefeaturesmeasurement_gearusefeatures; UPDATE OBSERVE_SEINE.gearusefeaturesmeasurement SET gearUseFeatures = replace(gearUseFeatures, 'GearUseFeatures#', 'GearUseFeaturesSeine#'); UPDATE OBSERVE_SEINE.gearusefeatures SET topiaid = replace(topiaid, 'GearUseFeatures#', 'GearUseFeaturesSeine#'); ALTER TABLE OBSERVE_SEINE.GEARUSEFEATURESMEASUREMENT ADD CONSTRAINT fk_gearusefeaturesmeasurement_gearusefeatures FOREIGN KEY(gearUseFeatures) REFERENCES OBSERVE_SEINE.GEARUSEFEATURES(topiaid); \ No newline at end of file diff --git a/observe-entities/src/main/resources/db/4.0-RC6/fix-gearUseFeatures-topiaIds-PG.sql b/observe-entities/src/main/resources/db/4.0-RC6/fix-gearUseFeatures-topiaIds-PG.sql index f3be214..37968f3 100644 --- a/observe-entities/src/main/resources/db/4.0-RC6/fix-gearUseFeatures-topiaIds-PG.sql +++ b/observe-entities/src/main/resources/db/4.0-RC6/fix-gearUseFeatures-topiaIds-PG.sql @@ -20,7 +20,7 @@ -- #L% --- UPDATE OBSERVE_SEINE.gearusefeaturesmeasurement SET topiaid = replace(topiaid, 'GearUseFeaturesMeasurement#', 'GearUseFeaturesMeasurementSeine#'); -ALTER TABLE OBSERVE_SEINE.gearusefeaturesmeasurement DROP CONSTRAINT fk_gearusefeaturesmeasurement_gearusefeatures; +--ALTER TABLE OBSERVE_SEINE.gearusefeaturesmeasurement DROP CONSTRAINT fk_gearusefeaturesmeasurement_gearusefeatures; UPDATE OBSERVE_SEINE.gearusefeaturesmeasurement SET gearUseFeatures = replace(gearUseFeatures, 'GearUseFeatures#', 'GearUseFeaturesSeine#'); UPDATE OBSERVE_SEINE.gearusefeatures SET topiaid = replace(topiaid, 'GearUseFeatures#', 'GearUseFeaturesSeine#'); ALTER TABLE OBSERVE_SEINE.GEARUSEFEATURESMEASUREMENT ADD CONSTRAINT fk_gearusefeaturesmeasurement_gearusefeatures FOREIGN KEY(gearUseFeatures) REFERENCES OBSERVE_SEINE.GEARUSEFEATURES(topiaid); \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit c7d5e9f77f522db01eb68d12e22a369081c7bce9 Merge: c4e11be 983f525 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue May 26 16:22:49 2015 +0200 fixes #7145: Echec de la mise à jour de la version 4.0 RC5 vers RC6 en base locale Merge branch 'feature/7145' into develop .../entities/migration/H2DataSourceMigration.java | 46 +++++++++++ .../entities/migration/PGDataSourceMigration.java | 88 ++++++++++++++++++++++ .../DataSourceMigrationForVersion_4_0_RC6.java | 22 +++++- .../db/4.0-RC6/fix-gearUseFeatures-topiaIds-H2.sql | 2 +- .../db/4.0-RC6/fix-gearUseFeatures-topiaIds-PG.sql | 2 +- 5 files changed, 157 insertions(+), 3 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 36d60b8f841edcde3502c95bca1c13a5dc2429a9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue May 26 16:32:25 2015 +0200 fix pg migration (refs #7145) --- .../java/fr/ird/observe/entities/migration/PGDataSourceMigration.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/PGDataSourceMigration.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/PGDataSourceMigration.java index 99a233b..ad6f8f3 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/PGDataSourceMigration.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/PGDataSourceMigration.java @@ -261,7 +261,7 @@ public class PGDataSourceMigration extends AbstractDataSourceMigration { // get attribute num String attNumSql = "select attnum from pg_attribute where attrelid=? AND attname =?"; - String attNum; + String attNum = null; { PreparedStatement ps = connection.prepareStatement(attNumSql); ps.setInt(1, Integer.valueOf(oid)); @@ -280,7 +280,7 @@ public class PGDataSourceMigration extends AbstractDataSourceMigration { } } - String sql = "SELECT DISTINCT conname FROM pg_constraint WHERE contype='f' AND conrelid = ? AND conkey = '{\" + attNum + \"}';"; + String sql = "SELECT DISTINCT conname FROM pg_constraint WHERE contype='f' AND conrelid = ? AND conkey = '{" + attNum + "}';"; PreparedStatement ps = connection.prepareStatement(sql); ps.setInt(1, Integer.valueOf(oid)); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 05417d34637906527a23c7ff871cf83dcbd4b60f Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue May 26 16:32:37 2015 +0200 fix third parties --- observe-swing/src/license/THIRD-PARTY.properties | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/observe-swing/src/license/THIRD-PARTY.properties b/observe-swing/src/license/THIRD-PARTY.properties index 843f100..8476846 100644 --- a/observe-swing/src/license/THIRD-PARTY.properties +++ b/observe-swing/src/license/THIRD-PARTY.properties @@ -6,7 +6,9 @@ # - Apache License, version 2.0 # - Apache Software License, version 1.1 # - BSD License +# - BSD License for HSQL # - Common Development and Distribution License +# - EPSG database distribution license # - Eclipse Distribution License (EDL), Version 1.0 # - Eclipse Public License (EPL), Version 1.0 # - Eclipse Public License 1.0 @@ -15,6 +17,7 @@ # - GNU Lesser General Public License # - GNU Library or Lesser General Public License # - General Public License (GPL) +# - HSQLDB License, a BSD open source license # - Indiana University Extreme! Lab Software License, vesion 1.1.1 # - JDL (Java Distribution License) # - LGPL 2.1 @@ -33,10 +36,11 @@ # Please fill the missing licenses for dependencies : # # -#Tue Apr 14 11:12:38 CEST 2015 +#Tue May 26 16:24:00 CEST 2015 commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0 dom4j--dom4j--1.6.1=BSD License java3d--vecmath--1.3.2=GNU General Public License - Version 2 with the class path exception javax.media--jai_codec--1.1.3=JDL (Java Distribution License) +javax.media--jai_core--1.1.3=JDL (Java Distribution License) javax.media--jai_imageio--1.1=JDL (Java Distribution License) jgridshift--jgridshift--1.0=GNU Library or Lesser General Public License -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm