从ArcGIS9.3,SDE开始支持Postgresql,经过这么多年的发展,SDE已经到了10.5版本了,从9.3到10.5,从功能,性能方面都发生了很多变化,但是不论是用老版本的sdesetup命令还是新版本的Create Enterprise Geodabase工具创建的Geodatabase都将数据库的名字写到系统表中了,因此以后如果数据库要迁移,目标数据库的名字是不能变更的,在实际的生产过程中会产生诸多不便,如果直接在数据库层面讲数据库名字修改掉,会导致ArcGIS整个前端工具以及开发接口都无法使用。
但是可以通过修改系统表的方法将数据库名字修改成别的名字,测试过程如下:
测试环境:
ArcSDE 10.5
Postgresql:9.4.10
数据库名称:SDE1
目标数据库名称:SDE
测试过程如下:
直接在数据库层面将数据库名称修改成SDE。
postgres=# alter database sde1 rename to sde;ALTER DATABASE
使用桌面进行连接报如下错误:
说明直接从数据库上改名是行不通的。
继续:
修改GDB_ITEMS表中的与数据库名绑定的相关信息
sde=# update sde.gdb_items set name='sde.sde.image',physicalname='SDE.SDE.IMAGE' where objectID=4;UPDATE 1 sde=# update sde.gdb_items set name='sde.sde.testpoint',physicalname='SDE.SDE.TE STPOINT' where objectID=5;UPDATE 1 sde=# update sde.gdb_items set name='sde.sde.subdltb',physicalname='SDE.SDE.SUBD LTB' where objectID=6;UPDATE 1
修改sde.sde_column_registry
sde=# update sde.sde_column_registry set database_name='sde';ERROR: insert or update on table "sde_column_registry" violates foreign key con straint "colregistry_fk" 描述: Key (table_name,schema,database_name)=(gdb_tables_last_modifIEd,sde,s de) is not present in table "sde_table_registry". sde=# update sde.sde_table_registry set database_name='sde';UPDATE 13 sde=# update sde.sde_column_registry set database_name='sde';UPDATE 125
修改sde.sde_geometry_columns中的相关记录
sde=# update sde.sde_geometry_columns set f_table_catalog='sde';UPDATE 4
修改sde.sde_raster_columns相关信息
sde=# update sde.sde_raster_columns set database_name='sde';UPDATE 0
修改sde.sde_layers 中的相关信息
sde=# update sde.sde_layers set database_name='sde';UPDATE 4
修改完后,使用桌面成功连接。
总结以上是内存溢出为你收集整理的SDE For PostgreSQL数据库改名方法全部内容,希望文章能够帮你解决SDE For PostgreSQL数据库改名方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)