PostgreSQL SQL转储

司机简称

PGDump

Driver built-in by default

This driver is built-in by default

这个只写驱动程序实现了对生成一个SQL转储文件的支持,该文件稍后可以注入到一个实时PostgreSQL实例中。它支持PostgreSQL扩展 PostGIS 几何学。

此驱动程序与PostGIS shp2pgsql实用程序非常相似。

大多数创建选项都与常规PostgreSQL驱动程序共享。

PGDump驱动程序支持创建具有多个PostGIS几何体列的表(如下所示) RFC 41:支持OGR中的多个几何字段

驱动程序功能

Supports Create()

This driver supports the GDALDriver::Create() operation

Supports Georeferencing

This driver supports georeferencing

Supports VirtualIO

This driver supports virtual I/O operations (/vsimem/, etc.)

创建选项

数据集创建选项

  • LINEFORMAT :默认情况下,使用本地平台的行终止约定创建文件(在win32上为CR/LF,在所有其他系统上为LF)。这可以通过使用LINEFORMAT图层创建选项来覆盖,该选项的值可以为 CRLF (DOS格式)或 LF (Unix格式)。

图层创建选项

  • GEOM_TYPE :GEOM_TYPE layer creation选项可以设置为“geometry”或“geography”(PostGIS>=1.5)之一,以强制表使用的几何类型“geometry”是默认值。

  • LAUNDER :这可能是“是”,以强制在此层上创建的新字段将其字段名“清洗”为与PostgreSQL更兼容的形式。这将转换为小写,并将一些特殊字符,如“-”和“#”转换为“#”。如果“否”,则保留准确的名称。默认值为“是”。如果启用,表(层)名称也将被清除。

  • PRECISION :如果可以使用数字(宽度、精度)或字符(宽度)类型,则此选项可能为“是”,以强制在此层上创建的新字段尝试表示宽度和精度信息。如果“否”,则将使用FLOAT8、INTEGER和VARCHAR类型。默认为“是”。

  • DIM={{2,3,XYM,XYZM}} :控制层的尺寸。对于PostGIS 1.0+的二维图层,设置为2很重要,因为它在加载期间对几何尺寸有限制。

  • GEOMETRY_NAME :在新表中设置几何列的名称。如果省略,则默认为 wkb_geometry 对于GEOM_TYPE=geometry,或 the_geog 对于GEOM_TYPE=地理。

  • SCHEMA :设置新表的架构名称。支持在不同架构中使用相同的层名称,但在公共架构和其他架构中不支持。

  • CREATE_SCHEMA :与模式结合使用。默认情况下设置为ON,以便发出CREATE SCHEMA指令。禁用可防止发出CREATE SCHEMA。

  • SPATIAL_INDEX =NONE/GIST/SPGIST/BRIN(从GDAL 2.4开始)或YES/NO用于早期版本和向后兼容性:默认设置为GIST(GDAL>=2.4,或YES用于早期版本)。在“几何体”列上创建空间索引(GiST)以加快查询速度(仅在PostGIS可用时有效)。设置为“无”(GDAL>=2.4,对于早期版本为FALSE)以禁用。BRIN仅适用于PostgreSQL>=9.4和PostGIS>=2.3。SPGIST仅适用于PostgreSQL>=11和PostGIS>=2.5

  • TEMPORARY :默认设置为关闭。创建临时表而不是永久表。

  • UNLOGGED :默认设置为关闭。是否将表创建为未标记的表。自postgresql9.1以来,仅支持未标记表,自postgresql9.3以来,GiST索引用于空间索引。

  • WRITE_EWKT_GEOM :默认设置为关闭。启用此选项可写入EWKT几何图形而不是十六进制几何图形。如果PG_USE_COPY环境变量设置为“是”,则此选项将无效。

  • CREATE_TABLE :默认设置为“开”,以便在必要时重新创建表。关闭可禁用此选项并使用现有表结构。

  • DROP_TABLE =ON/OFF/IFU EXISTS:默认为IFU EXISTS。设置为“开”,以便在重新创建表之前销毁表。设置为OFF可防止释放DROP TABLE。设置为IFu EXISTS in order DROP TABLE IF EXISTS to be emission(需要PostgreSQL>=8.2)

  • SRID :设置几何体的SRID。默认为-1,除非SRS与层关联。在这种情况下,如果提到EPSG代码,它将被用作SRID。(注意:必须用指定的SRID正确填充spatial U ref U sys表)

  • NONE_AS_UNKNOWN :可以设置为TRUE,以强制将非空间层(wkbNone)创建为几何图形(wkbUnknown)类型的空间表。默认为“否”,在这种情况下,将创建一个常规表,而不记录在PostGIS geometryu columns表中。

  • FID :要创建的FID列的名称。默认为“ogcu fid”。

  • 菲德64 :这可能为“TRUE”,以创建可支持64位标识符的FID列。默认值为“FALSE”。

  • EXTRACT_SCHEMA_FROM_LAYER_NAME :可以设置为“否”,以避免将点字符视为架构和表名之间的分隔符。默认为“是”。

  • COLUMN_TYPES :格式为fieldu name=pgu fieldu type(用逗号分隔)的字符串列表,在对这些字符串调用CreateField()时应使用这些字符串。这将覆盖OGR所做的默认选择。例如,这可以用于创建类型为的列 HSTORE .

  • POSTGIS_VERSION :默认为2.2,从GDAL 3.2开始(以前为1.5)可能的值:1.5、2.0或2.2。PostGIS 2.0对不同的非线性几何体类型进行编码。2.2为点空几何体带来了特殊处理。

  • DESCRIPTION (来自GDAL2.1)要放入pg U描述系统表中的描述字符串。描述也可以用SetMetadataItem(“描述”,描述字符串)来编写。ogr2ogr默认情况下会保留描述,除非使用-nomd选项。

环境变量

  • PG_USE_COPY :对于使用COPY将数据插入Postgresql,这可能是“YES”。复制比插入快得多。

VSI虚拟文件系统API支持

驱动程序支持写入由VSI虚拟文件系统API管理的文件,这些文件包括“常规”文件以及/vsizip/,/vsigzip/域中的文件。

还支持写入/dev/stdout或/vsistdout/。

例子

  • 将shapefile简单地转换为PostgreSQL文件abc.sql。将使用abc.shp中的功能和abc.dbf中的属性创建表“abc”。指定了SRID。PG_USE_COPY设置为YES以提高性能。

    ogr2ogr --config PG_USE_COPY YES -f PGDump abc.sql abc.shp -lco SRID=32631
    
  • 将PGDump驱动程序的输出导入psql实用程序。

    ogr2ogr --config PG_USE_COPY YES -f PGDump /vsistdout/ abc.shp | psql -d my_dbname -f -
    

也见