跨库更新ArcGIS 某个Geodatabase FeatureClass

今天不讨论使用ArcGIS的工具,比如Pro和ArcPy进行迁移,今天讨论用纯数据库命令行方法进行更新,毕竟速度快,数据百分之百保真,而且方便任务化执行

环境:

源库: PG 11.5 X64 for linux

目标: KingbaseES V8R6 X64 for linux

应用所在机器: (需要安装pg的命令行工具,尽量安装跟目标库上一致的版本,如KingbaseES V8R6 是基于PG12.1修改的,那就安装PG12版本的PG和ArcGIS Pro)

前提:

两个库都开启了企业级地理数据库(都使用postgis建立了Geodatabase模型)

目标库和源库需要对应用机器免密登录数据库(服务器端设置免密或者中间机器设置密码文件都可以)

步骤:

  1. 使用ArcGIS Pro导入数据到源库中

  2. 导入数据结束后,使用pro在源库导出xml工作空间(只导出元数据)

3 使用Pro在目标库上,导入第二部导出的xml工作空间。

  1. 应用所在机器上执行如下命令(可以写成脚本,每天定时执行)
bash 复制代码
清除目标库上的数据
psql -h 192.168.100.51 -U sde -p 54321 -d arcmap1082create -c "truncate table poly100w"
TRUNCATE TABLE

导入数据
pg_dump -a -h 192.168.100.138 -U sde -d test -p 5432 -t poly100w |psql -h 192.168.100.51 -U sde -d arcmap1082create -p 54321
SET
SET
SET
SET
SET
 set_config
------------

(1 row)

SET
SET
SET
SET
COPY 1189032

重置objectid,以让pro能够编辑
psql -h 192.168.100.51 -U sde -p 54321 -d arcmap1082create -c "select sde.reset_rowid('sde','poly100w',t.value) from (select max(objectid) +1 as value from poly100w) as t(value);"
 reset_rowid
-------------
           0
(1 row)

修改范围,以让pro能正确显示
psql -h 192.168.100.51 -U sde -p 54321 -d arcmap1082create -c "update sde.sde_layers a set (minx,miny,maxx,maxy)=(select min(st_xmin(b.shape)),min(st_ymin(b.shape)),max(st_xmax(b.shape)),max(st_ymax(b.shape)) from poly100w b) where a.table_name='poly100w'"
UPDATE 1
  1. 这样就可以获得一个使用ArcGIS Pro正常打开的FeatureClass
相关推荐
非科班Java出身GISer20 小时前
ArcGIS JS 基础教程(38):StreamLayer 实时流数据图层
arcgis·arcgis js·arcgis js 流图层·streamlayer·arcgis 流数据图层·arcgis 实时流数据图层
赵钰老师2 天前
基于ArcGIS Pro、R、INVEST等多技术融合下生态系统服务权衡与协同动态分析
python·arcgis·数据分析·r语言
梦想的初衷~3 天前
MaxEnt 物种分布建模学习手册|理论 + R 语言 + ArcGIS 全套实操教程
arcgis·环境变量·r 语言·maxent 模型·物种分布建模·生态学研究·科研教程
jiushidt8 天前
ArcGIS Pro Add‑in 打包流程详解
arcgis·c#·.net·arcgispro
蓝悦无人机8 天前
《地面站软件开发》-第2章ArcGIS Maps SDK for Qt 改变视角
arcgis·上位机·地面站·qml·qt6·qt quick·天地图
bug嘛我经常写9 天前
MIKE21结合ArcGIS制作随时间变化的降水文件(.dfs2)-笔记
经验分享·笔记·arcgis
paiooo10 天前
用 XML 保存 LLM 会话得到高可读性会话
arcgis
Q一件事10 天前
ArcGIS中TypeError: can‘t multiply sequence by non-int of type ‘str‘错误
前端·javascript·arcgis
萧行之11 天前
Observable Plot 源码深度解析——1 认识 Observable Plot
arcgis
ノBye~11 天前
Codex CLI使用记录
arcgis