Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe Commits: 296bd417 by Tony Chemit at 2022-12-12T14:11:35+01:00 Une BD sql.gz qui génère une corruption de données systématique - Notre espoir de comprendre le problème ? - Closes #2571 - - - - - 5a4d1662 by Tony Chemit at 2022-12-12T14:57:16+01:00 Report - correction de certain totaux (exprimé en int au lieu d'en float pour les poids) + revue de certains libellés - - - - - 8 changed files: - core/api/dto/src/main/resources/observe-reports.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerReasonForDiscard.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerSpeciesFate.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerReasonForDiscard.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerSpeciesFate.properties - toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceContext.java - toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceImpl.java - toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/version/MigrationServiceSqlHelper.java Changes: ===================================== core/api/dto/src/main/resources/observe-reports.properties ===================================== @@ -1151,7 +1151,7 @@ report.psObservationCatch.request.3.repeat=speciesId|column ################################################################################ report.psObservationCatchTotalCountByGroupPerSpeciesFate.modelType=PS report.psObservationCatchTotalCountByGroupPerSpeciesFate.name=Observations - Dénombrement des captures par type de banc et devenir, filtrés par groupe -report.psObservationCatchTotalCountByGroupPerSpeciesFate.description=Afficher les nombres de captures par groupe d'espèce selon le type de banc et le devenir, filtré par groupe +report.psObservationCatchTotalCountByGroupPerSpeciesFate.description=Afficher les nombres de captures selon le type de banc et le devenir, filtré par groupe report.psObservationCatchTotalCountByGroupPerSpeciesFate.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\ Select distinct sg \ From TripImpl t \ @@ -1214,8 +1214,8 @@ report.psObservationCatchTotalCountByGroupPerSpeciesFate.operations.4=SumIntColu ## Poids des captures par groupe d'espèces ################################################################################ report.psObservationCatchWeightByGroupPerSpeciesFate.modelType=PS -report.psObservationCatchWeightByGroupPerSpeciesFate.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe -report.psObservationCatchWeightByGroupPerSpeciesFate.description=Afficher le poids de captures par groupe d'espèce selon le type de banc et le devenir, filtrés par groupe +report.psObservationCatchWeightByGroupPerSpeciesFate.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe (en t) +report.psObservationCatchWeightByGroupPerSpeciesFate.description=Afficher le poids de captures selon le type de banc et le devenir, filtrés par groupe (en t) report.psObservationCatchWeightByGroupPerSpeciesFate.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\ Select distinct sg \ From TripImpl t \ @@ -1272,13 +1272,13 @@ Where m.id In :tripId \ Group by s, sf \ Order By s.homeId report.psObservationCatchWeightByGroupPerSpeciesFate.operations.2=ComputeDynamicHeader:Espèce,Total BL,Total BO|speciesFate -report.psObservationCatchWeightByGroupPerSpeciesFate.operations.3=SumIntRow:1|3 -report.psObservationCatchWeightByGroupPerSpeciesFate.operations.4=SumIntColumn:1|1 +report.psObservationCatchWeightByGroupPerSpeciesFate.operations.3=SumRow:1|3 +report.psObservationCatchWeightByGroupPerSpeciesFate.operations.4=SumColumn:1|1 ################################################################################ ## Poids des captures par groupe d'espèces, type de banc et et raison de rejet ################################################################################ report.psObservationCatchWeightByGroupPerReasonForDiscard.modelType=PS -report.psObservationCatchWeightByGroupPerReasonForDiscard.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe +report.psObservationCatchWeightByGroupPerReasonForDiscard.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe (en t) report.psObservationCatchWeightByGroupPerReasonForDiscard.description=Afficher le poids de captures rejetées par espèce selon le type de banc et type de rejet, filtrés par groupe report.psObservationCatchWeightByGroupPerReasonForDiscard.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\ Select distinct sg \ @@ -1336,14 +1336,14 @@ Where m.id In :tripId \ Group by s, sf \ Order By s.homeId report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.2=ComputeDynamicHeader:Espèce,Total BL,Total BO|reasonForDiscard -report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.3=SumIntRow:1|3 -report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.4=SumIntColumn:1|1 +report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.3=SumRow:1|3 +report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.4=SumColumn:1|1 ################################################################################ ## Dénombrement des rejets par groupe d'espèces, type de banc et raison de rejet ################################################################################ report.psObservationCatchTotalCountByGroupPerReasonForDiscard.modelType=PS -report.psObservationCatchTotalCountByGroupPerReasonForDiscard.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe -report.psObservationCatchTotalCountByGroupPerReasonForDiscard.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe +report.psObservationCatchTotalCountByGroupPerReasonForDiscard.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe (en t) +report.psObservationCatchTotalCountByGroupPerReasonForDiscard.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe (en t) report.psObservationCatchTotalCountByGroupPerReasonForDiscard.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\ Select distinct sg \ From TripImpl t \ ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerReasonForDiscard.properties ===================================== @@ -19,8 +19,8 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -syntax.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe -syntax.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe +syntax.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe (en t) +syntax.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe (en t) syntax.rows=-1 syntax.columns=-1 syntax.columnsHeader= ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerSpeciesFate.properties ===================================== @@ -20,7 +20,7 @@ # #L% ### syntax.name=Observations - Dénombrement des captures par type de banc et devenir, filtrés par groupe -syntax.description=Afficher les nombres de captures par groupe d'espèce selon le type de banc et le devenir, filtré par groupe +syntax.description=Afficher les nombres de captures selon le type de banc et le devenir, filtré par groupe syntax.rows=-1 syntax.columns=-1 syntax.columnsHeader= ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerReasonForDiscard.properties ===================================== @@ -19,7 +19,7 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -syntax.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe +syntax.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe (en t) syntax.description=Afficher le poids de captures rejetées par espèce selon le type de banc et type de rejet, filtrés par groupe syntax.rows=-1 syntax.columns=-1 @@ -29,4 +29,4 @@ syntax.nbRequests=1 result.columns=9 result.rows=2 result.0=Espèce^Total BL^Total BO^Espèce non désirée ou protégée^Taille^Cuve pleine^Poisson abîmé ou impropre à la consommation humaine^Autre ( à préciser dans les notes )^Total -result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^12.0^null^null^12 \ No newline at end of file +result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^12.0^null^null^12.0 \ No newline at end of file ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerSpeciesFate.properties ===================================== @@ -19,8 +19,8 @@ # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -syntax.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe -syntax.description=Afficher le poids de captures par groupe d'espèce selon le type de banc et le devenir, filtrés par groupe +syntax.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe (en t) +syntax.description=Afficher le poids de captures selon le type de banc et le devenir, filtrés par groupe (en t) syntax.rows=-1 syntax.columns=-1 syntax.columnsHeader= @@ -29,4 +29,4 @@ syntax.nbRequests=1 result.columns=19 result.rows=2 result.0=Espèce^Total BL^Total BO^Ailerons seulements^Partiellement conservé (ex: ailerons de requin, poisson séché)^Autres (à préciser dans les notes)^Conservé pour raisons scientifiques^Conservé pour le marché local ou poisson séché/salé à bord^Conservé à destination de la conserverie^Utilisé en cuisine du bord^Echappe du filet (pour requin-baleine et cétacés)^Rejeté, statut non observé^Rejeté suffocant^Rejeté suffocant blessé^Sortie vivant du filet (pour requin-baleine et cétacés)^Sortie mort du filet (pour requin-baleine et cétacés)^Rejeté vivant^Rejeté mort^Total -result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^null^null^null^null^null^12.0^null^null^null^null^null^null^null^12 \ No newline at end of file +result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^null^null^null^null^null^12.0^null^null^null^null^null^null^null^12.0 \ No newline at end of file ===================================== toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceContext.java ===================================== @@ -279,8 +279,11 @@ public class TopiaMigrationServiceContext { } } - public void saveModelVersion() { - saveVersion(null, getModelVersion()); + protected void saveModelVersionAndCommit() { + Version version = getModelVersion(); + log.info(String.format("[ Version %s ] Saving persistence model database version and commit.", version)); + sqlHelper.saveAndCommit(jdbcHelper, version.getVersion()); + dbVersion = version; } public Optional<TopiaMigrationServiceAskUserToMigrate> getAskUserToMigrate() { @@ -289,11 +292,7 @@ public class TopiaMigrationServiceContext { protected void saveVersion(TopiaSqlSupport sqlSupport, Version version) { log.info(String.format("[ Version %s ] Saving new database version.", version)); - if (sqlSupport != null) { - sqlHelper.save(sqlSupport, version.getVersion()); - } else { - sqlHelper.save(jdbcHelper, version.getVersion()); - } + sqlHelper.save(sqlSupport, version.getVersion()); dbVersion = version; } ===================================== toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceImpl.java ===================================== @@ -91,7 +91,7 @@ public class TopiaMigrationServiceImpl implements TopiaMigrationService { context.dropLegacyTable(); if (dbVersion.equals(modelVersion)) { log.info("Database is up to date, but was coming from legacy migration table, fill new migration table."); - context.saveModelVersion(); + context.saveModelVersionAndCommit(); return; } } @@ -103,7 +103,7 @@ public class TopiaMigrationServiceImpl implements TopiaMigrationService { if (versionTableExist && dbNotVersioned) { log.info("Database is empty, no migration needed."); - context.saveModelVersion(); + context.saveModelVersionAndCommit(); return; } @@ -113,8 +113,9 @@ public class TopiaMigrationServiceImpl implements TopiaMigrationService { List<Version> versionsToApply = context.getResources().getVersionsAfter(dbVersion); if (versionsToApply.isEmpty()) { + //TODO This case should never happen? log.info("No version to apply, no migration needed."); - context.saveModelVersion(); + context.saveModelVersionAndCommit(); return; } ===================================== toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/version/MigrationServiceSqlHelper.java ===================================== @@ -149,9 +149,9 @@ public interface MigrationServiceSqlHelper { return deleteTableSql() + fillVersionSql(version); } - default void save(JdbcHelper jdbcHelper, String version) { + default void saveAndCommit(JdbcHelper jdbcHelper, String version) { try { - jdbcHelper.runUpdate(saveTableSql(version)); + jdbcHelper.runUpdate(saveTableSql(version) + "commit;"); } catch (Exception e) { throw new TopiaException(String.format("Could not save version %s", version), e); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/20f4df02e0c3937943d6cdf73... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/20f4df02e0c3937943d6cdf73... You're receiving this email because of your account on gitlab.com.