[Gfoss] Come copiare uno schema pg su sqlite usando gdal.

Penso che a qualcuno possa interessare:

con la seguente sintassi si riesce, usando “ogr2ogr” a copiare tutte le tabelle di un intero schema postgres/postgis su sqlite/spatialite.

ogr2ogr.exe --config PG_LIST_ALL_TABLES YES --config PG_SKIP_VIEWS YES -f "SQLite" mydb.sqlite -progress PG:"dbname='mydb' active_schema=myschema schemas=myschema host='localhost' port='5432' user='myuser' password='mypass' " -lco LAUNDER=yes -dsco SPATIALITE=yes -lco SPATIAL_INDEX=no

Il comando fa’ copiare tutte le tabelle ovvero sia quelle con geometria che quelle senza geometria (le classiche tabelle alfanumeriche pure), senza L’opzione PG_SKIP_VIEWS vengono copiate anche le viste che ovviamente vengono materializzate e quindi secondo me e’ una cosa inutile , a meno di esigenze particolari.
Per cui se non servono le viste si deve usare l’opzione PG_SKIP_VIEWS per “scansarle”.

La sintassi e’ volutamente estesa per esemplificare le varie casistiche, infatti e’ previsto che siano copiate le tabelle di uno schema che non sia quello di default (“public”),
e viene imposto espressamente il formato spatialite, altrimenti nel caso di campi geometrici su sqlite ci si ritroverebbe un blob indistinto.

Noterete che l’opzione Spatialindex e’ settata a no.

La ragione e’ duplice, infatti da un lato non ha senso generare l’indice in seguito a copia, ritengo sia preferibile generarlo a posteriori,
ma la ragione piu’ rilevante e’ che tale opzione se messa a YES generava un errore :slight_smile:
Questo succedeva circa 6-7 mesi fa’ puo’ darsi che ora sia stato messo a posto.
Basta provare …

Saluti,

Andrea Peri
. . . . . . . . .
qwerty àèìòù