Migriert eine ObjectID-basierte Beziehungsklasse in eine GlobalID-basierte Beziehungsklasse.
Verwendung
Mit diesem Werkzeug wird eine vorhandene ObjectID-basierte Beziehungsklasse in eine GlobalID-basierte Beziehungsklasse geändert, um Runtime-Anforderungen für Geodatabases zu erfüllen.
Die Ursprungs-Feature-Class oder -Tabelle, die im Parameterwert Eingabe-Beziehungsklasse verwendet wird, muss über ein GlobalID-Feld verfügen, damit dieses Werkzeug verwendet werden kann. Die Zielklasse muss ebenfalls über ein GlobalID-Feld verfügen.
Die vorhandene Eingabe-Beziehungsklasse muss auf dem Feld ObjectID basieren. Bei den Daten darf es sich nicht um Daten mit aktivierter Archivierung handeln.
Dieses Werkzeug unterstützt versionierte und nichtversionierte Daten als Eingabe.
Eine in ArcGIS Desktop erstellte Feature-bezogene Annotation muss erst mit dem Werkzeug Dataset aktualisieren aktualisiert werden.
Es wird empfohlen, eine Sicherungskopie der Daten zu erstellen, die als Eingabe für dieses Werkzeug verwendet werden.
Eine ObjectID-basierte Beziehungsklasse, die in eine GlobalID-basierte Beziehungsklasse migriert wird. Die Ursprungs- und Ziel-Feature-Classes oder -Tabellen müssen über ein vorhandenes GlobalID-Feld verfügen.
Eine ObjectID-basierte Beziehungsklasse, die in eine GlobalID-basierte Beziehungsklasse migriert wird. Die Ursprungs- und Ziel-Feature-Classes oder -Tabellen müssen über ein vorhandenes GlobalID-Feld verfügen.
Relationship Class
Abgeleitete Ausgabe
Name
Erläuterung
Datentyp
out_relationship_class
Die aktualisierte Beziehungsklasse.
Relationship Class
Codebeispiel
MigrateRelationshipClass: Beispiel 1 (Python-Fenster)
Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion MigrateRelationshipClass im Direkt-Modus verwendet wird.
MigrateRelationshipClass: Beispiel 2 (eigenständiges Skript)
Das folgende Skript veranschaulicht, wie die Funktion MigrateRelationshipClass in einem eigenständigen Skript verwendet wird.
# 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")