Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

3 changed files:

Changes:

  • models/persistence/src/main/java/fr/ird/observe/entities/data/ll/observation/SetTopiaDao.java
    ... ... @@ -22,6 +22,7 @@ package fr.ird.observe.entities.data.ll.observation;
    22 22
      * #L%
    
    23 23
      */
    
    24 24
     
    
    25
    +import com.google.common.base.Joiner;
    
    25 26
     import com.google.common.collect.ImmutableSet;
    
    26 27
     import fr.ird.observe.spi.context.DataDtoEntityContext;
    
    27 28
     
    
    ... ... @@ -36,6 +37,17 @@ import java.util.List;
    36 37
     public class SetTopiaDao extends AbstractSetTopiaDao<Set> {
    
    37 38
     
    
    38 39
         private static final String SQL_PATTERN = "SELECT DISTINCT(%1$s) FROM %2$s WHERE set = '%3$s' AND %1$s IS NOT NULL";
    
    40
    +    private static final String SANITIZE_BASKET_SQL_PATTERN = "UPDATE %1$s SET basket = NULL WHERE branchline IS NOT NULL;";
    
    41
    +    private static final String SANITIZE_SECTION_SQL_PATTERN = "UPDATE %1$s SET section = NULL WHERE basket IS NOT NULL OR branchline IS NOT NULL;";
    
    42
    +
    
    43
    +    public static ImmutableSet<String> generateSanitizeLonglineElementsStatements() {
    
    44
    +        return ImmutableSet.of(
    
    45
    +                String.format(SANITIZE_BASKET_SQL_PATTERN, "ll_observation.tdr"),
    
    46
    +                String.format(SANITIZE_SECTION_SQL_PATTERN, "ll_observation.tdr"),
    
    47
    +                String.format(SANITIZE_BASKET_SQL_PATTERN, "ll_observation.catch"),
    
    48
    +                String.format(SANITIZE_SECTION_SQL_PATTERN, "ll_observation.catch")
    
    49
    +        );
    
    50
    +    }
    
    39 51
     
    
    40 52
         public ImmutableSet<String> getSectionUsed(String setId) {
    
    41 53
             ImmutableSet.Builder<String> builder = ImmutableSet.builder();
    
    ... ... @@ -58,6 +70,13 @@ public class SetTopiaDao extends AbstractSetTopiaDao<Set> {
    58 70
             return builder.build();
    
    59 71
         }
    
    60 72
     
    
    73
    +    //FIXME Use this in next consolidate ll action
    
    74
    +    @SuppressWarnings("unused")
    
    75
    +    public void sanitizeLonglineElements() {
    
    76
    +        ImmutableSet<String> requests = generateSanitizeLonglineElementsStatements();
    
    77
    +        topiaSqlSupport.executeSql(Joiner.on("\n").join(requests));
    
    78
    +    }
    
    79
    +
    
    61 80
         protected void getUsages(DataDtoEntityContext<?, ?, ?, ?> spi, String propertyName, String setId, ImmutableSet.Builder<String> ids) {
    
    62 81
             List<String> newIds = topiaSqlSupport.findMultipleResult(String.format(SQL_PATTERN, propertyName, spi.getEntitySqlDescriptor().getTable().getSchemaAndTableName(), setId), r -> r.getString(1));
    
    63 82
             ids.addAll(newIds);
    

  • models/persistence/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_8_0.java
    ... ... @@ -23,6 +23,7 @@ package fr.ird.observe.entities.migration;
    23 23
      */
    
    24 24
     
    
    25 25
     import com.google.auto.service.AutoService;
    
    26
    +import fr.ird.observe.entities.data.ll.observation.SetTopiaDao;
    
    26 27
     import org.nuiton.topia.persistence.support.TopiaSqlQuery;
    
    27 28
     import org.nuiton.topia.service.migration.resources.MigrationVersionResource;
    
    28 29
     import org.nuiton.topia.service.migration.resources.MigrationVersionResourceExecutor;
    
    ... ... @@ -43,7 +44,7 @@ import java.util.List;
    43 44
     public class DataSourceMigrationForVersion_8_0 extends MigrationVersionResource {
    
    44 45
     
    
    45 46
         public DataSourceMigrationForVersion_8_0() {
    
    46
    -        super(Versions.valueOf("8.0"));
    
    47
    +        super(Versions.valueOf("8.0"), true);
    
    47 48
             ObserveTopiaMigrationServiceAskUserToMigrate.createResourceScriptVariables(this, "2020-10-01", "2020-10-01 00:00:00.000000");
    
    48 49
         }
    
    49 50
     
    
    ... ... @@ -85,6 +86,11 @@ public class DataSourceMigrationForVersion_8_0 extends MigrationVersionResource
    85 86
             executor.executeForPG(this::fixPostgisTriggers);
    
    86 87
         }
    
    87 88
     
    
    89
    +    @Override
    
    90
    +    public void generateFinalizeSqlScript(MigrationVersionResourceExecutor executor) {
    
    91
    +        SetTopiaDao.generateSanitizeLonglineElementsStatements().forEach(executor::writeSql);
    
    92
    +    }
    
    93
    +
    
    88 94
         private void processSchema(MigrationVersionResourceExecutor executor, boolean withIds, String order, String schemaName) {
    
    89 95
             if (withIds) {
    
    90 96
                 executor.addScript(order, schemaName + "_fill");
    

  • tests/test/src/main/resources/db/8.0/dataForTestLongline.sql.gz
    No preview for this file type