branch develop updated (ed4b1c8 -> c6e95de)
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 ed4b1c8 [ObServeLL] les saisies des mesures/poids ne s'enregistrent pas (termine #7327) Merge branch 'feature/7327' into develop new f106ec9 Regeneration des topiaIds des mises en oeuvre d'equipement sur la seine (refs #7350) new c6e95de [MIGRATION] Topiaids relatifs à la conversion de la senne en équipement non uniques (termine #7350) Merge branch 'feature/7350' into develop The 2 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 c6e95de924e65b8d342dc026a82eb5ed4e4bb110 Merge: ed4b1c8 f106ec9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 10 21:24:47 2015 +0200 [MIGRATION] Topiaids relatifs à la conversion de la senne en équipement non uniques (termine #7350) Merge branch 'feature/7350' into develop commit f106ec97bef3d6df0bff3732a1d17ec9e75171c2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 10 21:24:45 2015 +0200 Regeneration des topiaIds des mises en oeuvre d'equipement sur la seine (refs #7350) Summary of changes: .../DataSourceMigrationForVersion_4_0_1.java | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) -- 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 f106ec97bef3d6df0bff3732a1d17ec9e75171c2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 10 21:24:45 2015 +0200 Regeneration des topiaIds des mises en oeuvre d'equipement sur la seine (refs #7350) --- .../DataSourceMigrationForVersion_4_0_1.java | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_1.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_1.java index 7e7f3c1..0d582e2 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_1.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_4_0_1.java @@ -22,13 +22,24 @@ package fr.ird.observe.entities.migration.versions; * #L% */ +import com.google.common.collect.LinkedHashMultimap; +import com.google.common.collect.Multimap; import fr.ird.observe.entities.migration.AbstractDataSourceMigration; import fr.ird.observe.entities.migration.AbstractObserveMigrationCallBack; import fr.ird.observe.entities.migration.H2DataSourceMigration; import fr.ird.observe.entities.migration.PGDataSourceMigration; +import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; +import fr.ird.observe.entities.seine.GearUseFeaturesSeine; +import org.hibernate.jdbc.Work; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.persistence.TopiaId; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Collection; import java.util.List; /** @@ -58,6 +69,55 @@ public abstract class DataSourceMigrationForVersion_4_0_1 extends AbstractObserv removeForeignKeys(tx, queries); addScript("add-missing-fk", queries); + // See https://forge.codelutin.com/issues/7350 + migrateGearUseFeaturesSeineMeasurementIds(tx, queries); + + } + + protected void migrateGearUseFeaturesSeineMeasurementIds(TopiaContextImplementor tx, List<String> queries) { + + final Multimap<String, String> gearUseFeaturesSeineAndMeasurementIds = LinkedHashMultimap.create(); + tx.getHibernate().doWork(new Work() { + + @Override + public void execute(Connection connection) throws SQLException { + String sql = "SELECT GEARUSEFEATURES, topiaId FROM OBSERVE_SEINE.GEARUSEFEATURESMEASUREMENT;"; + PreparedStatement ps = connection.prepareStatement(sql); + try { + ResultSet set = ps.executeQuery(); + while (set.next()) { + String gearUseFeaturesSeineId = set.getString(1); + String gearUseFeaturesMeasurementSeineId = set.getString(2); + gearUseFeaturesSeineAndMeasurementIds.put(gearUseFeaturesSeineId, gearUseFeaturesMeasurementSeineId); + } + } catch (Exception e) { + throw new SQLException("Could not obtain GEARUSEFEATURESMEASUREMENT ids", e); + } finally { + ps.close(); + } + } + }); + + for (String gearUseFeaturesSeineId : gearUseFeaturesSeineAndMeasurementIds.keySet()) { + + String newGearUseFeaturesSeineId = TopiaId.create(GearUseFeaturesSeine.class); + + queries.add(String.format("INSERT INTO OBSERVE_SEINE.GEARUSEFEATURES(TOPIAID, TOPIAVERSION, TOPIACREATEDATE, GEAR, NUMBER) VALUES ('%s', 0, TIMESTAMP '2015-03-24 00:00:00.00', 'fr.ird.observe.entities.referentiel.Gear#1239832686125#0.20', 1)", newGearUseFeaturesSeineId)); + queries.add(String.format("UPDATE OBSERVE_SEINE.GEARUSEFEATURES SET TRIP = (SELECT TRIP FROM OBSERVE_SEINE.GEARUSEFEATURES WHERE topiaId='%s') WHERE topiaId='%s';", gearUseFeaturesSeineId, newGearUseFeaturesSeineId)); + + Collection<String> gearUseFeaturesMeasurementSeineIds = gearUseFeaturesSeineAndMeasurementIds.get(gearUseFeaturesSeineId); + + for (String gearUseFeaturesMeasurementSeineId : gearUseFeaturesMeasurementSeineIds) { + + String newGearUseFeaturesMeasurementSeineId = TopiaId.create(GearUseFeaturesMeasurementSeine.class); + queries.add(String.format("UPDATE OBSERVE_SEINE.GEARUSEFEATURESMEASUREMENT SET GEARUSEFEATURES = '%s', topiaid = '%s' WHERE topiaid='%s'", newGearUseFeaturesSeineId, newGearUseFeaturesMeasurementSeineId, gearUseFeaturesMeasurementSeineId)); + + } + + queries.add(String.format("DELETE FROM OBSERVE_SEINE.GEARUSEFEATURES WHERE topiaId='%s'", gearUseFeaturesSeineId)); + + } + } public static class H2DataSourceMigrationForVersion extends DataSourceMigrationForVersion_4_0_1 { -- 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 c6e95de924e65b8d342dc026a82eb5ed4e4bb110 Merge: ed4b1c8 f106ec9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 10 21:24:47 2015 +0200 [MIGRATION] Topiaids relatifs à la conversion de la senne en équipement non uniques (termine #7350) Merge branch 'feature/7350' into develop .../DataSourceMigrationForVersion_4_0_1.java | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) -- 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