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 -