claeis / ili2db

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

ili2gpkg-4.5.0 - AdministrativeUnits_V1.Countries must be declared as ABSTRACT #390

Closed nicpitsch closed 3 years ago

nicpitsch commented 3 years ago

Ich habe im Jahr 2020 eine gpkg Datenbank mit ili2gpkg --schemaimport.. erstellt. Die Tabelle T_ILI2DB_MODEL enthält CHBase_Part4_ADMINISTRATIVEUNITS_20110830.ili mit Version 2020-04-24.

Beim Validieren mit dem aktuellen ili2gpkg 4.5.0 mittels ili2gpkg-4.5.0.jar --validate --models QuellenMIDAT_V1 --dbfile 47420_geodata.gpkg wird die Fehlermeldung ....ilicache...\CHBase_Part4_ADMINISTRATIVEUNITS_20110830.ili:76:AdministrativeUnits_V1.Countries must be declared as ABSTRACT... ausgegeben.

Die Validierung funktioniert aber mit diesen zwei Optionen:

1) Version 4.4.2: ili2gpkg-4.4.2.jar --validate --models QuellenMIDAT_V1 --dbfile 47420_geodata.gpkg oder mit 2) Version 4.5.0: ili2gpkg-4.5.0.jar --validate --models QuellenMIDAT_V1 --modeldir .\;http://models.interlis.ch --dbfile 47420_geodata.gpkg

ili2gpkg Version 4.5.0 stolpert somit bei Version 2020-04-24 vom Datenmodell CHBase_Part4_ADMINISTRATIVEUNITS.ili. Wenn man die Information zur neuesten Version 2020-08-25 liest (2020-08-25 | KOGIS | Classes AdministrativeUnit and AdministrativeUnion declared as not abstract) ist das nachvollziehbar. Aber Option 2 ist wohl eine schlechte Wahl, wenn ich nicht die Modelle verwenden kann, mit denen die Datenbank erstellt wurde?

Ist dieses Verhalten, dass ili2gpkg bzw. ili2db nicht rückwärtskompatibel ist, normal oder ist das ein Bug?

edigonzales commented 3 years ago

Der von v4.5.0 verwendete ili-Compiler meldet korrekterweise den Fehler in der Modellversion von _CHBase_Part4ADMINISTRATIVEUNITS.ili, die du verwendet hast. D.h. wenn du heute mit ili2gpkg --schemaimport eine Geopackage-Datei erstellen würdest, sollte ebenfalls ein Fehler gemeldet werden.

Am besten mit alter Version die Daten exportieren und mit neuer Version GeoPackage-Datei neu anlegen und Daten importieren. Bei GeoPackage ist man ja sein eigener DB-Admin.

Und das Verzeichnis .ilicache im Benutzerhome löschen.

nicpitsch commented 3 years ago

Danke für die Information und den Hinweis.