Как использовать mapFieldType с gdal.VectorTranslate
Я пытаюсь экспортировать базу данных postgresql в файл .gpkg, но некоторые из моих полей представляют собой списки, и ogr2ogr отправляет мне сообщение:
Предупреждение 1. Драйвер вывода изначально не поддерживает тип StringList для поля my_field_name. Неверное преобразование может произойти. -mapFieldType может использоваться для управления преобразованием типа поля.
Но, как и в документации, -mapFieldType не является -lco, я не нахожу, как использовать его с версией gdal.VectorTranslate для python.
вот ма конфиг:
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',
)
поэтому я попытался добавить его в -lco:
layerCreationOptions=["-mapFieldType StringList=String"]
но это не сработало
поэтому я покопался в коде gdal, добавил полеmapFieldType=None
в функцию VectorTranslateOptions и добавили в ее код следующие строки:
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]
И это сработало, но есть ли другой способ? И если нет, то где я могу предложить эту функцию?
спасибо за помощь