Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 97672fa0 by Tony CHEMIT at 2017-09-27T11:45:20+02:00 La migration RC9 plante (See #877) - - - - - 2 changed files: - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_9.java - + persistence/src/main/resources/db/migration/6.904/04_add_triggers-PG.sql Changes: ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_9.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_9.java +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_9.java @@ -22,7 +22,10 @@ package fr.ird.observe.persistence.migration; * #L% */ +import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.util.List; +import org.apache.commons.lang3.mutable.MutableBoolean; import org.nuiton.topia.persistence.support.TopiaSqlSupport; /** @@ -37,17 +40,23 @@ public abstract class DataSourceMigrationForVersion_7_0_RC_9 extends AbstractObs super(DataSourceMigrationForVersion_7_0_RC_9.class, callBack, scriptSuffix); } - protected abstract void removeForeignKeys(TopiaSqlSupport topiaSqlSupport, List<String> queries); + protected abstract boolean removeForeignKeys(TopiaSqlSupport topiaSqlSupport, List<String> queries); @Override protected void prepareMigrationScript(TopiaSqlSupport topiaSqlSupport, List<String> queries, boolean showSql, boolean showProgression) { - removeForeignKeys(topiaSqlSupport, queries); - + boolean withTrigger = removeForeignKeys(topiaSqlSupport, queries); + if (withTrigger) { + queries.add("DROP TRIGGER IF EXISTS tr_sync_seine_activity_the_geom ON observe_seine.activity"); + queries.add("DROP TRIGGER IF EXISTS tr_sync_longline_activity_the_geom ON observe_longline.activity"); + } addScript("01", "rename_longline_obs", queries); addScript("02", "move_wind_referential", queries); addScript("03", "wind_i18n", queries); + if (withTrigger) { + + } } public static class H2DataSourceMigrationForVersion extends DataSourceMigrationForVersion_7_0_RC_9 { @@ -57,7 +66,7 @@ public abstract class DataSourceMigrationForVersion_7_0_RC_9 extends AbstractObs } @Override - protected void removeForeignKeys(TopiaSqlSupport topiaSqlSupport, List<String> queries) { + protected boolean removeForeignKeys(TopiaSqlSupport topiaSqlSupport, List<String> queries) { H2DataSourceMigration.removeFK(topiaSqlSupport, "observe_longline", "Encounter", "activity", queries); H2DataSourceMigration.removeFK(topiaSqlSupport, "observe_longline", "SensorUsed", "activity", queries); H2DataSourceMigration.removeFK(topiaSqlSupport, "observe_longline", "Activity", "set", queries); @@ -71,6 +80,7 @@ public abstract class DataSourceMigrationForVersion_7_0_RC_9 extends AbstractObs H2DataSourceMigration.removeFK(topiaSqlSupport, "observe_longline", "Section", "set", queries); H2DataSourceMigration.removeFK(topiaSqlSupport, "observe_longline", "Tdr", "set", queries); H2DataSourceMigration.removeFK(topiaSqlSupport, "observe_seine", "Activity", "wind", queries); + return false; } } @@ -81,7 +91,7 @@ public abstract class DataSourceMigrationForVersion_7_0_RC_9 extends AbstractObs } @Override - protected void removeForeignKeys(TopiaSqlSupport topiaSqlSupport, List<String> queries) { + protected boolean removeForeignKeys(TopiaSqlSupport topiaSqlSupport, List<String> queries) { PGDataSourceMigration.removeFK(topiaSqlSupport, "observe_longline", "encounter", "activity", queries); PGDataSourceMigration.removeFK(topiaSqlSupport, "observe_longline", "sensorUsed", "activity", queries); PGDataSourceMigration.removeFK(topiaSqlSupport, "observe_longline", "Activity", "set", queries); @@ -95,6 +105,16 @@ public abstract class DataSourceMigrationForVersion_7_0_RC_9 extends AbstractObs PGDataSourceMigration.removeFK(topiaSqlSupport, "observe_longline", "Section", "set", queries); PGDataSourceMigration.removeFK(topiaSqlSupport, "observe_longline", "Tdr", "set", queries); PGDataSourceMigration.removeFK(topiaSqlSupport, "observe_seine", "Activity", "wind", queries); + + MutableBoolean result = new MutableBoolean(false); + topiaSqlSupport.doSqlWork(connection -> { + PreparedStatement preparedStatement = connection.prepareStatement(" SELECT tgname FROM pg_trigger WHERE tgrelid = 'observe_seine.activity'::regclass AND tgname LIKE 'tr_sync%';"); + ResultSet resultSet = preparedStatement.executeQuery(); + if (resultSet.next()) { + result.setTrue(); + } + }); + return result.booleanValue(); } } ===================================== persistence/src/main/resources/db/migration/6.904/04_add_triggers-PG.sql ===================================== --- /dev/null +++ b/persistence/src/main/resources/db/migration/6.904/04_add_triggers-PG.sql @@ -0,0 +1,24 @@ +--- +-- #%L +-- ObServe :: Persistence +-- %% +-- Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io +-- %% +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public +-- License along with this program. If not, see +-- <http://www.gnu.org/licenses/gpl-3.0.html>. +-- #L% +--- + +CREATE TRIGGER tr_sync_seine_activity_the_geom BEFORE insert or update ON observe_seine.activity FOR EACH ROW EXECUTE PROCEDURE sync_activity_the_geom(); +CREATE TRIGGER tr_sync_longline_activity_obs_the_geom BEFORE insert or update ON observe_longline.activityObs FOR EACH ROW EXECUTE PROCEDURE sync_activity_the_geom(); \ No newline at end of file View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/97672fa09ad8894241afaad27a3c... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/97672fa09ad8894241afaad27a3c... You're receiving this email because of your account on gitlab.com.