协调版本 (数据管理)

描述

根据目标版本协调一个或多个版本。

了解有关如何协调和提交版本的详细信息

使用方法

  • 协调过程要求您是当前正在编辑版本的唯一用户,并且是整个协调过程中(直到执行保存或提交操作为止)将编辑版本的唯一用户。

  • 协调过程要求您对正在编辑的版本中的所有已修改要素类具有全部权限。

  • 版本管理工具适用于企业级地理数据库。文件地理数据库不支持版本管理。

  • 此工具支持在启用版本管理功能的情况下协调/提交从分支工作空间发布的数据。不支持通过地理数据库连接文件来协调/提交分支版本化。

  • 地理数据库用于高效管理和支持使用版本的长事务。

  • 协调过程将检测到编辑版本与目标版本之间的差异,然后将这些差异标记为冲突。如果存在冲突,则应将其解决。

  • 使用协调所有版本选项成功运行协调过程后,地理数据库中的所有版本都会变为相同版本。

语法

arcpy.management.ReconcileVersions(input_database, reconcile_mode, {target_version}, {edit_versions}, {acquire_locks}, {abort_if_conflicts}, {conflict_definition}, {conflict_resolution}, {with_post}, {with_delete}, {out_log}, {proceed_if_conflicts_not_reviewed}, {reconcile_checkout_versions})
参数说明数据类型
input_database

包含要协调的版本的企业级地理数据库。默认使用地理处理工作空间环境。

对于分支版本化,这将为要素服务 URL(即 https://mysite.mydomain/server/rest/services/ElectricNetwork/FeatureServer)。

Workspace
reconcile_mode

指定执行工具时要协调的版本。

如果输入为分支工作空间,则此参数的唯一有效选择是协调所有版本。

  • ALL_VERSIONS将编辑版本与目标版本进行协调。这是默认设置。
  • BLOCKING_VERSIONS协调阻止目标版本压缩的版本。此选项使用建议的协调顺序。
String
target_version
(可选)

编辑版本的任何直系版本的名称,例如父版本或默认版本。

它通常包含您希望在编辑版本中包括的其他版本的编辑内容。

如果输入工作空间为分支版本服务,则此参数的唯一有效选择是协调默认版本。

String
edit_versions
[edit_versions,...]
(可选)

要与所选目标版本进行协调的版本或编辑版本的名称。可以是单个版本名称或版本名称的列表。

String
acquire_locks
(可选)

指定是否将获取要素锁定。

  • LOCK_ACQUIRED协调过程中将获取锁定。要提交编辑时可使用此选项。确保在协调和提交操作之间的时间内没有修改目标版本。这是默认设置。
  • NO_LOCK_ACQUIRED协调过程中将不获取任何锁定。此时允许多个用户平行协调。不将编辑版本提交到目标版本时可使用此选项,因为在协调和提交操作之间的时间内可能修改了目标版本。
Boolean
abort_if_conflicts
(可选)

如果协调过程中在目标版本与编辑版本之间发现冲突,则指定是否将中止协调过程。

  • NO_ABORT如果发现冲突,将不会中止协调。这是默认设置。
  • ABORT_CONFLICTS如果发现冲突,将中止协调。
Boolean
conflict_definition
(可选)

指定发生冲突所需的条件是由对象(行)还是由属性(列)定义。

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

指定检测到冲突时的解决方案。

如果输入为分支工作空间,则默认支持编辑版本。

  • FAVOR_TARGET_VERSION将优先使用目标版本解决所有冲突。这是传统版本化的默认值。
  • FAVOR_EDIT_VERSION将优先使用编辑版本解决所有冲突。这是分支版本化的默认值。
String
with_post
(可选)

指定是否将当前编辑会话提交到已协调的目标版本。

  • NO_POST协调后不将当前编辑版本提交到目标版本。这是默认设置。
  • POST协调后将当前编辑版本提交到目标版本。
Boolean
with_delete
(可选)

指定提交后是否删除已协调的编辑版本。如果 with_post 参数设置为 POST,则应用此参数。

  • DELETE_VERSION协调后的当前编辑版本在提交到目标版本后将被删除。
  • KEEP_VERSION不会删除协调后的当前编辑版本。这是默认设置。
Boolean
out_log
(可选)

写入日志文件的名称和位置。日志文件为包含地理处理消息内容的 ASCII 文件。

File
proceed_if_conflicts_not_reviewed
(可选)

如果协调过程开始之前存在未经审核的冲突,则指定是否将继续进行协调。如果选择继续,则执行工具时,之前会话中未解决的冲突将会丢失。此参数仅适用于分支版本化。

  • PROCEED如果未解决的冲突尚未经过审核,则将继续协调过程。这是默认设置。
  • NOT_PROCEED如果检测到未经审核的未解决冲突,则不继续进行协调过程。
Boolean
reconcile_checkout_versions
(可选)

指定协调是否将包括检出复本版本。如果要将检出复本创建为地理数据库复制工作流的一部分,则系统会在地理数据库中创建相关联的版本。您可通过此选项在要协调的版本列表中包括或移除这些类型的版本。此参数不适用于分支版本化。

  • RECONCILE协调过程将包括检出复本版本。这是默认设置。
  • DO_NOT_RECONCILE协调过程将不包括检出复本版本。
Boolean

派生输出

名称说明数据类型
out_workspace

已更新的输入工作空间。

工作空间

代码示例

ReconcileVersions 示例(独立脚本)

以下独立脚本演示了如何使用 ReconcileVersions 工具协调在数据库连接文件中指定的用户所拥有的所有版本。

# Name: ReconcileVersions.py
# Description: Reconciles all versions owned by a user with SDE.Default

# Import system modules
import arcpy, os

# Set workspace
workspace = 'C:/Data/connections/bender@production.sde'

# Set the workspace environment
arcpy.env.workspace = workspace

# Use a list comprehension to get a list of version names where the owner
# is the current user and make sure sde.default is not selected.
verList = [ver.name for ver in arcpy.da.ListVersions() if ver.isOwner
           == True and ver.name.lower() != 'sde.default']

arcpy.ReconcileVersions_management(workspace,
                                   "ALL_VERSIONS",
                                   "SDE.Default",
                                   verList,
                                   "LOCK_ACQUIRED",
                                   "NO_ABORT",
                                   "BY_OBJECT",
                                   "FAVOR_TARGET_VERSION",
                                   "NO_POST",
                                   "KEEP_VERSION",
                                   "c:\RecLog.txt")
print('Reconciling Complete')

许可信息

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

相关主题