同步更改 (数据管理)

描述

根据指定的方向在两个复本地理数据库之间对更新进行同步。

使用方法

  • 在连接模式下对复本进行同步时使用此工具。

  • 可使用此工具对双向、单向和检出复本进行同步。

  • 复本地理数据库可以是本地地理数据库,也可以是地理数据服务。

  • 同步之后,这些变更(编辑)将反映在目标地理数据库中且对于所有用户均可见。

语法

arcpy.management.SynchronizeChanges(geodatabase_1, in_replica, geodatabase_2, in_direction, conflict_policy, conflict_definition, reconcile)
参数说明数据类型
geodatabase_1

要同步的复本所在的地理数据库。地理数据库可以是本地地理数据库也可以是远程地理数据库。

Workspace; GeoDataServer
in_replica

父项在一个输入地理数据库中而子项在另一个输入地理数据库中的有效复本。

String
geodatabase_2

相关复本所在的地理数据库。地理数据库可以是本地地理数据库也可以是远程地理数据库。

Workspace; GeoDataServer
in_direction

指定同步变更的方向:从地理数据库 1 到地理数据库 2、从地理数据库 2 到地理数据库 1,或者双向同步变更。对于检出/检入复本或单向复本,仅可以向一个方向发送变更。如果复本为双向复本,则上述选择均可使用。

  • BOTH_DIRECTIONS对变更进行双向同步。这是默认设置。
  • FROM_GEODATABASE2_TO_1将变更从地理数据库 2 同步到地理数据库 1。
  • FROM_GEODATABASE1_TO_2将变更从地理数据库 1 同步到地理数据库 2。
String
conflict_policy

指定发生冲突时解决冲突的方式。

  • MANUAL在版本协调环境中手动解决冲突。
  • IN_FAVOR_OF_GDB1优先使用地理数据库 1 解决冲突。这是默认设置。
  • IN_FAVOR_OF_GDB2优先使用地理数据库 2 解决冲突。
String
conflict_definition

指定冲突的定义方式。

  • BY_OBJECT协调期间父版本和子版本中的相同行或要素发生更改。这是默认设置。
  • BY_ATTRIBUTE 协调期间只有父版本和子版本中的相同行或要素的同一属性(列)发生的更改会被标记为冲突。协调期间不同属性所发生的更改不会被视为冲突。
String
reconcile

指定如果不存在任何冲突,则在数据变更发送到父复本后是否自动进行协调。此选项仅适用于检出/检入复本。

  • DO_NOT_RECONCILE不使用父版本进行协调。这是默认设置。
  • RECONCILE使用父版本进行协调。
Boolean

派生输出

名称说明数据类型
out_geodatabase_1

要同步的复本所在的地理数据库。

工作空间;GeoDataServer
out_geodatabase_2

相关复本所在的地理数据库。

工作空间;GeoDataServer

代码示例

SynchronizeChanges 示例(Python 窗口)

以下 Python 窗口示例演示了如何在 Python 窗口中使用 SynchronizeChanges 函数。

import arcpy
arcpy.env.workspace = "C:/Data"
arcpy.SynchronizeChanges_management("MyData.sde", "My2wayReplica", 
                                    "MyData_child.sde", "BOTH_DIRECTIONS",
                                    "IN_FAVOR_OF_GDB1", "BY_ATTRIBUTE")
SynchronizeChanges 示例 2(独立脚本)

以下演示了如何在独立 Python 脚本中使用 SynchronizeChanges 函数。

# Name: SynchronizeChanges_Example2.py
# Description: Synchronizes changes for a one way replica from the Parent to 
#              the child replica geodatabase. The parent is an enterprise 
#              geodatabase workspace, and the child is file geodatabase.
# Import system modules
import arcpy
# Set workspace
arcpy.env.workspace = "C:/Data"
# Set local variables
replica_gdb1 = "MyData.sde"
replica_gdb2 = "Counties_replica.gdb"
replica_name = "MyOneWayReplica"
sync_direction = "FROM_GEODATABASE1_TO_2"
conflict_policy = ""     # Not applicable for one way replicas, there is not conflict detection.
conflict_detection = ""  # Not applicable for one way replicas, there is not conflict detection.
reconcile = ""           # Only applicable for Checkout replicas
# Execute SynchronizeChanges
arcpy.SynchronizeChanges_management(replica_gdb1, replica_name, replica_gdb2, 
                                    sync_direction, conflict_policy, 
                                    conflict_detection, reconcile)

许可信息

  • Basic: 否
  • Standard: 是
  • Advanced: 是

相关主题