claeis / ili2db

interlis import/export to relational databases
30 stars 30 forks source link

ili2pg-4.10.0: Error unexpected cardinality of attribute ... #505

Closed leafelber closed 1 year ago

leafelber commented 1 year ago

Beim XTF-Export aus einer PG-DB mit ili2pg-Version 4.10.0 ergibt sich der Fehler:

Error: C:\Users\AKOLE.ilicache\jdbc&003apostgresql&003a\postgis.zg.ch&003a5432\produktion\statische_waldgrenzen\CHBase_Part4_ADMINISTRATIVEUNITS_V1.ili:95:unexpected cardinality of attribute "AdministrativeUnits_V1.CountryNames.CountryNamesTranslation:Entries". Error: compiler failed

ZG_Waldgrenzen_V1_2_export.log

Mit der ili2pg-Version 4.7.0 kann die Transferdatei fehlerfrei erstellt werden.

olivergrimm commented 1 year ago

@leafelber Löscht mal die alten Modelldateien aus dem ILI-Cache (C:\Users\AKOLE.ilicache). Das betroffene Modell wird auch von der jüngsten Compiler-Version (ili2c-5.3.2) fehlerfrei kompiliert.

leafelber commented 1 year ago

Danke vielmals für deinen Hinweis. Ja, mit der aktuellsten Compiler-Version ili2c-5.3.2 kann das Modell fehlerfrei kompiliert werden. Wenn ich aber ili2pg-4.10.0 verwende, funktioniert es nicht (mit ili2pg-4.7.0 schon). Den ILI-Cache habe ich vorgängig gelöscht:

Info: ili2pg-4.10.0-c2af4b50c5475f788286f974812b52bb0f9b19bc Info: ili2c-5.3.2-6fb5df2877070aeb16c7b39a206a61e2518682c8 Info: iox-ili-1.21.15-f055cd0e781e5b2754c475ec4573eb3bed12bd8b Info: java.version 1.8.0_201 Info: user.name Info: maxMemory 253440 KB Info: currentTime 2023-02-09 07:56:55 Info: dbschema Info: dburl <jdbc:postgresql://postgis.zg.ch:5432/produktion> Info: dbusr Info: databaseProduct Info: databaseVersion <10.14> Info: driverName Info: driverVersion <42.2.18.jre6> Info: postGISVersion <POSTGIS="2.4.9" PGSQL="100" GEOS="3.8.1-CAPI-1.13.3" PROJ="Rel. 7.1.1, September 1st, 2020" GDAL="GDAL 3.1.3, released 2020/09/01" LIBXML="2.9.1" LIBJSON="0.11" LIBPROTOBUF="1.0.2" (core procs from "2.4.9" need upgrade) RASTER (raster procs from "2.4.9" need upgrade)> Info: max active DB statements <0> Info: compile models... Info: lookup model in repository <jdbc:postgresql://postgis.zg.ch:5432/produktion/statische_waldgrenzen/> Info: lookup model 2.3 in repository <jdbc:postgresql://postgis.zg.ch:5432/produktion/statische_waldgrenzen/> Info: lookup model 2.3 in repository <jdbc:postgresql://postgis.zg.ch:5432/produktion/statische_waldgrenzen/> Info: lookup model 2.3 in repository <jdbc:postgresql://postgis.zg.ch:5432/produktion/statische_waldgrenzen/> Info: lookup model 2.3 in repository <jdbc:postgresql://postgis.zg.ch:5432/produktion/statische_waldgrenzen/> Info: lookup model 2.3 in repository <jdbc:postgresql://postgis.zg.ch:5432/produktion/statische_waldgrenzen/> Info: lookup model 2.3 in repository <jdbc:postgresql://postgis.zg.ch:5432/produktion/statische_waldgrenzen/> Info: ilifile <C:\Users\fele.ilicache\jdbc&003apostgresql&003a\postgis.zg.ch&003a5432\produktion\statische_waldgrenzen\CoordSys-20151124.ili> Info: ilifile <C:\Users\fele.ilicache\jdbc&003apostgresql&003a\postgis.zg.ch&003a5432\produktion\statische_waldgrenzen\Units-20120220.ili> Info: ilifile <C:\Users\fele.ilicache\jdbc&003apostgresql&003a\postgis.zg.ch&003a5432\produktion\statische_waldgrenzen\CHBase_Part2_LOCALISATION_V1.ili> Info: ilifile <C:\Users\fele.ilicache\jdbc&003apostgresql&003a\postgis.zg.ch&003a5432\produktion\statische_waldgrenzen\CHBase_Part1_GEOMETRY_V1.ili> Info: ilifile <C:\Users\fele.ilicache\jdbc&003apostgresql&003a\postgis.zg.ch&003a5432\produktion\statische_waldgrenzen\CHBase_Part4_ADMINISTRATIVEUNITS_V1.ili> Info: ilifile <C:\Users\fele.ilicache\jdbc&003apostgresql&003a\postgis.zg.ch&003a5432\produktion\statische_waldgrenzen\Waldgrenzen_V1_2.ili> Info: ilifile <C:\Users\fele.ilicache\jdbc&003apostgresql&003a\postgis.zg.ch&003a5432\produktion\statische_waldgrenzen\ZG_Waldgrenzen_V1_2.ili> Error: C:\Users\fele.ilicache\jdbc&003apostgresql&003a\postgis.zg.ch&003a5432\produktion\statische_waldgrenzen\CHBase_Part4_ADMINISTRATIVEUNITS_V1.ili:95:unexpected cardinality of attribute "AdministrativeUnits_V1.CountryNames.CountryNamesTranslation:Entries". Error: compiler failed

claeis commented 1 year ago

Das liegt vermutlich daran, dass beim Export die ili-Datei aus der DB verwendet wird (die aber eigentlich nicht korrekt ist), und diese nicht mehr durch den aktuellen Compiler geht (weil der Compiler besser prüft). Das kann übersteuert werden indem der Parameter --modeldir http://models.interlis.ch/;%ILI_FROM_DB benutzt wird.

leafelber commented 1 year ago

Ja, es lag tatsächlich daran, dass die ili-Datei aus der DB verwendet wurde. Die Übersteuerung funktioniert. Danke vielmals!