一、数据库连接问题
1.先是配置问题,需要修改数据库的配置:
如上图,找到pg_hba.conf文件将最后两行开头的#号去除,假如没有这两句就加上,并在最后加上:
host all all 0.0.0.0/0 trust,最好对齐前文。
然后在同一文件夹下找到postgresql.conf文件,打开通过搜素找到: listen_addresses,将其赋值为'*',原来就是的可以不管。
这时可以利用navicat等工具试试能不能远程连上,能则进入下一步,不能则继续排查原因。
2.文件配置
需要将这两个配置文件复制到数据库的安装目录下(linux的本地安装、docker部署、windows安装的lib目录不尽相同,以下展示的是windows):
3.连接参数问题
ArcGIS连接数据库时可用任意数据库用户进行连接,但要注意用户权限问题,postgres用户可查看所有模式下的数据,但其他用户只能看到与用户名同名的模式下的数据。此外,当数据端口不是5432(即默认端口)时,则需要如图显式指定端口。
二、数据入库问题
1.无论时批量入库、还是单个入库或者xml工作文档还原,其入库路径都一定是指定数据库下,与登录用户名相同的模式。如果没有这个模式,软件会报错。
2.特别地xml工作空间入库时,必须保证要导入的数据库和模式跟xml文件生成时所用的数据库和模式一致,不然就会报错。
如果因为某些需要导致确实需要入到不同名的数据库下面,需要手动修改路径:
最后这里再次强调:ArcGIS对数据库的操作是严格跟连接所用的用户相关的,即除了超管外,其他用户均只能对自己用户名的同名模式下的数据进行操作;入库时,任何用户只能入库到跟自己用户名的同名模式下。
三、空间字段问题
Arcgis默认状态下,空间字段名称必须是shape,字段类型一般是st_geometry,但是现在好一些国产化的数据库是geometry类型。只需入库时将空间字段改过来即可,xml工作文档入库的情形(选PG_GEOMETRY):
shp文件入库的情形(选PG_GEOMETRY):
特别地,如果是用postgis自带的工具导入shp,则需要将空间字段的名称改成shape,因为默认状态下该工具导入的图层空间字段时geom,类型则是geometry。