การอัปโหลดเนื้อหา Geopackage ไปยัง PostgreSQL


15

ในฐานะที่เป็นพื้นหลังเรากำลังมองหาการเปลี่ยนจากการใช้รูปร่างของไฟล์ เราได้เริ่มใช้ Geopackages สำหรับงานเดสก์ท็อป (QGIS / ArcGIS) แต่มักจะมีข้อกำหนดในการอัปโหลดข้อมูลไปยังฐานข้อมูล PostgreSQL ของเรา

ฉันทราบว่าคุณสามารถอัปโหลดเนื้อหา Geopackage ไปยัง Postgres โดยใช้ QGIS แต่สงสัยว่ามีอรรถประโยชน์บรรทัดคำสั่งใด ๆ คล้ายกับ shp2pgsql สำหรับการอัปโหลด geopackages หรือตารางใน geopackages ไปยัง Postgres หรือไม่ ฉันคาดว่าอาจเป็น ogr2ogr แต่ไม่พบเอกสาร

คำตอบ:


10

บทช่วยสอนนี้แสดงวิธีนำเข้า geopackges ไปยัง postgres ด้วย ogr2ogr เช่น:

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 ตอนนี้ฉันต้องทำการโพสต์บนแต่ละตารางที่สร้างขึ้นจาก gpkg ใน postgres ในสคริปต์ commandline ของฉันและต้องแยกชื่อตารางแต่ละชื่อออกจาก gpkg ฉันสามารถดู ogrinfo แสดงรายการตาราง แต่มีแนวคิดใดบ้างเกี่ยวกับวิธีที่ฉันสามารถนำสิ่งเหล่านี้มาเป็นตัวแปรได้หรือไม่?
James Norris

5

มีงานอย่างต่อเนื่องในต้นแบบ QGIS (เช่นที่นี่และที่นี่เพื่อ 'แก้ไข' เครื่องมือใน QGIS (นำเข้าเวกเตอร์ไปยังฐานข้อมูล Postgis - ... ) ซึ่งสร้างพารามิเตอร์บรรทัดคำสั่งสำหรับ OGR2OGR ให้คุณใช้โดยเฉพาะสำหรับ Postgis ซึ่งดูเหมือนว่า หักด้วย QGIS 3. ฉันมีคำขอดึงอีกอันหนึ่งที่วางแผนไว้สำหรับการแก้ไขเพิ่มเติมและตัวเลือกเพิ่มเติมถ้าคุณสามารถรอหนึ่งสัปดาห์หรือมากกว่านั้นและใช้หลักหรือ 3 เดือนหรือมากกว่านั้นและใช้ 3.4 จากนั้นจะหลีกเลี่ยงการป้อนคำสั่ง พารามิเตอร์บรรทัดด้วยตนเองและควรทำงานในรูปแบบไฟล์ต่าง ๆ มากมายรวมถึง geopackage


2

การใช้บทช่วยสอนบนลิงก์นี้จะเป็นการเพิ่มทางเลือกบรรทัดถัดไปของ GDAL (ogr2ogr) ให้ดีขึ้น

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

มันใช้งานได้สำหรับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.