将Geopackage内容上传到PostgreSQL


15

作为背景知识,我们正在寻求摆脱使用shapefile的过渡。我们已经开始使用Geopackages进行桌面工作(QGIS / ArcGIS),但是经常需要将数据上传到我们的PostgreSQL数据库。

我知道您可以使用QGIS将Geopackage内容上传到Postgres,但想知道是否有类似于shp2pgsql的命令行实用程序将Geopackage或Geopackages中的表格上传到Postgres?我假设可能是ogr2ogr,但找不到文档。

Answers:


10

教程说明如何使用ogr2​​ogr将geopack导入postgres,例如:

ogr2ogr -f PostgreSQL "PG:dbname=gadm" DNK_adm.gpkg

请注意,这样导入PostgreSQL会将GeoPackage数据中字段名称的大小写转换为PostgreSQL表中的小写字母。为了保持大小写,您需要使用以下lco选项:

ogr2ogr -f PostgreSQL "PG:dbname=gadm" DNK_adm.gpkg -lco LAUNDER=NO

这很棒。我有ogr2ogr使用.gpkg。现在,我需要在命令行脚本中对在postgres中从gpkg创建的每个表进行后处理,并且需要从gpkg中提取每个表名。我可以看到ogrinfo列出了表格,但是关于如何将它们放入变量的任何想法?
James Norris '18

5

QGIS主站中正在进行工作(例如,在此处此处以“修复” QGIS中的工具(将向量导入Postgis数据库-...)),该工具会生成OGR2OGR的命令行参数供您使用,尤其是Postgis,以供您使用。 QGIS 3已损坏。我还计划了另一个拉取请求,以进行更多修复和其他选择,如果您可以等待一个星期左右,然后使用master,或者三个月左右,然后使用3.4,则可以避免输入命令手动设置行参数,并且应适用于许多不同的文件格式,包括地理包。


2

使用此链接上的教程,最好将以下选项添加到GDAL命令行(ogr2ogr)。

ogr2ogr -f PostgreSQL "PG:user=youruser password=yourpassword dbname=yourdbname" yourgeopackage.gpkg

这个对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.