Перенести класс отношений (Инструменты Управление данными)
Краткая информация
Позволяет перенести класс отношений на основе ObjectID в класс отношений, основанный на GlobalID.
Использование
Этот инструмент модифицирует существующий класс отношений, основанный на ObjectID, в класс отношений на основе GlobalID в соответствии с требованиями базы геоданных runtime.
Исходный класс объектов или таблица, которые используются во Входном классе отношений должны иметь поле GlobalID для использования этого инструмента. Целевой класс должен также иметь поле GlobalID.
Существующий входной класс отношений должен быть на основе поля ObjectID. Данные не могут быть с включенным архивированием.
Этот инструмент поддерживает версионные и неверсионные входные данные.
Объектно-связанные аннотации, созданные в ArcGIS Desktop, сначала необходимо обновить с помощью инструмента Обновить набор данных.
Рекомендуется иметь резервную копию входных данных этого инструмента.
Позволяет перенести класс отношений на основе ObjectID в класс отношений, основанный на GlobalID. Исходный и целевой классы объектов или таблицы должны иметь существующее поле GlobalID.
Позволяет перенести класс отношений на основе ObjectID в класс отношений, основанный на GlobalID. Исходный и целевой классы объектов или таблицы должны иметь существующее поле GlobalID.
Relationship Class
Производные выходные данные
Имя
Объяснение
Тип данных
out_relationship_class
Обновленный класс отношений.
Relationship Class
Пример кода
MigrateRelationshipClass, пример 1 (окно Python)
В следующем скрипте окна Python показано использование функции MigrateRelationshipClass в режиме прямого запуска.
MigrateRelationshipClass, пример 2 (автономный скрипт)
Этот скрипт демонстрирует пример использования функции MigrateRelationshipClass в автономном скрипте.
# Name: MigrateRelationshipClass_Example.py
# Description: Migrate an ObjectID-based relationship class to a GlobalID-based
# relationship class. This script lists the ObjectID-based relationships classes
# in a workspace, checks for GlobalIDs in the origin, then runs the tool
# Import system modules
import arcpy
# Set local variables
workspace = r'C:\Data\Relationships.gdb'
# List all of the relationship classes within the given workspace
rc_list = [c.name for c in arcpy.Describe(workspace).children if c.datatype == "RelationshipClass"]
# Build a list of relationship classes which have an OBJECTID based origin class key
rc_migrate = []
for rc in rc_list:
rc_path = workspace + "\\" + rc
rc_desc = arcpy.Describe(rc_path)
for item in rc_desc.OriginClassKeys:
if "OBJECTID" in item:
rc_migrate.append(rc_path)
# Check that the origin feature classes have Global Ids
rc_final = []
for rel in rc_migrate:
originfc = workspace + "\\" + arcpy.Describe(rel).originClassNames[0]
if arcpy.ListFields(originfc, "", "GlobalID"):
rc_final.append(rel)
print("Adding {0} to the list to migrate. \n".format(rel.rsplit("\\",1)[1]))
else:
print("{0} must have Global Ids to migrate relationship class.\n".format(originfc.rsplit("\\",1)[1]))
# Pass the list of valid relationship classes into the Migrate Relationship tool
print("Passing valid relationship classes into the Migrate Relationship Class tool.\n")
for rel_class in rc_final:
print("Migrating {0}... \n".format(rel_class.rsplit("\\",1)[1]))
arcpy.management.MigrateRelationshipClass(rel_class)
print(arcpy.GetMessages() + "\n")