Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
9157663c
by Tony Chemit at 2020-12-28T13:36:00+01:00
3 changed files:
- models/persistence/src/main/java/fr/ird/observe/entities/data/ll/observation/SetTopiaDao.java
- models/persistence/src/main/java/fr/ird/observe/entities/migration/DataSourceMigrationForVersion_8_0.java
- tests/test/src/main/resources/db/8.0/dataForTestLongline.sql.gz
Changes:
| ... | ... | @@ -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);
|
| ... | ... | @@ -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");
|
No preview for this file type