preScript und postScript von ili2db

Gemäss ili2db-Docs kann mit den Flags --preScript und --postScript SQL-Code vor und nach dem Import/Export ausgeführt werden. Ich möchte nun in einem Pre-Script vor einem Import Textklassen des Datensatzes entfernen (entspricht Use Case von diesem ilishaper-Comment. Dies sollte vorzugsweise vor der Validierung erfolgen. In welchem SQL-Dialekt müsste eine entsprechende Query geschrieben sein?

Ich habe bisher nur mit --postScript gearbeitet und damit Daten in der DB manipuliert. Dort kommt es dann natürlich darauf an, mit welcher DB du arbeitest (GeoPackage oder eine ausgewachsene DB wie Postgres). Diese haben ja ihre eigenen Dialekte.

Meine Vermutung für deinen geschilderten Fall ist aber, dass dies nicht funktionieren wird. Du kannst die Daten nicht vor dem Import entfernen. Mit --preScript kannst du z. B. Tabellen anlegen oder die DB sonstwie manipulieren. Aber auf die Daten des xtf hast du zu diesem Zeitpunkt noch keinen Zugriff. Du könntest gewisse Daten aber, wie eingangs beschrieben, mittels --postScript im Anschluss an den Import aus der DB entfernen.

In diesem Fall ist preScript aber nur bei Exporten und postScript nur bei Importen nutzbar - wäre in der Dokumentation anzupassen. Umso wichtiger wäre es, bei ilishaper eine Option zur Beibehaltung der OID einzubauen - so hätte man eine Option fürs Preprocessing.

Nein, das trifft nicht zu. Wie erwähnt kann man mittels dieser Scripte die Datenbank auch manipulieren (DDL, DCL), also Tabellen anlegen, Schemas löschen oder Benutzerberechtigungen erteilen, ohne dass Daten darin vorhanden sind. Also lässt sich --preScript und --postScript sowohl beim Import als auch beim Export nutzen.

Einen Vorschlag zur Anpassung der Doku kannst du jederzeit gerne als PR einbringen.