0

I'm trying to export a postgresql database into a .gpkg file, but some of my fields are lists, and ogr2ogr send me the message :

Warning 1: The output driver does not natively support StringList type for field my_field_name. Misconversion can happen. -mapFieldType can be used to control field type conversion.

But, as in the documentation, -mapFieldType is not a -lco, i don't find how to use it with the python version of gdal.VectorTranslate

here ma config :

gdal_conn = gdal.OpenEx(f"PG:service={my_pgsql_service}", gdal.OF_VECTOR)

gdal.VectorTranslate("path_to_my_file.gpkg"), gdal_conn,
                      SQLStatement=my_sql_query,
                      layerName=my_mayer_name,
                      format="GPKG",
                      accessMode='append',
                    )

so i've tried to add it in the -lco :

layerCreationOptions=["-mapFieldType StringList=String"]

but it didn't work

so i diged into the code of gdal, added a field mapFieldType=None into the VectorTranslateOptions function, and added into its code the following lines :

        if mapFieldType is not None:
            mapField_str = ''
            i = 0
            for k, v in mapFieldType.items():
                i += 1
                mapField_str += f"{k}={v}" if i == len(mapFieldType) else f"{k}={v},"
            new_options += ['-mapFieldType', mapField_str]

And it worked, but is there an other way ? And if not, where can i propose this feature ?

Thank you for your help

0 Answers0