Geodatabase aktualisieren (Data Management)

Zusammenfassung

Eine Geodatabase wird auf die neueste Version aktualisiert, um die Funktionen zu nutzen, die in der aktuellen Version von ArcGIS verfügbar sind. Gültige Eingabeformate sind eine Personal- oder File-Geodatabase oder eine SDE-Verbindungsdatei bzw. Verbindungsinformationen für eine ArcSDE-Geodatabase.

Sie müssen die aktuelle Version von ArcGIS Desktop (ArcEditor oder ArcInfo), ArcGIS Engine Runtime mit der Erweiterung Geodatabase Update oder ArcGIS Server Standard oder Advanced auf dem Computer installiert haben, auf dem Sie das Upgrade ausführen. Für ArcSDE-Geodatabases ist eine direkte Verbindung zur Geodatabase erforderlich, um das Upgrade auszuführen. Die Treiber für Direct Connect, mit denen Sie eine Verbindung zu älteren unterstützten Geodatabases herstellen können, werden automatisch mit ArcGIS Desktop, ArcGIS Engine und ArcGIS Server installiert.

Verwendung

Syntax

UpgradeGDB_management (input_workspace, input_prerequisite_check, input_upgradegdb_check)
ParameterErläuterungDatentyp
input_workspace

Die zu aktualisierende File-, Personal- oder ArcSDE-Geodatabase

Workspace
input_prerequisite_check

Gibt an, ob die Prüfung der Voraussetzungen vor dem Aktualisieren der Geodatabase ausgeführt wird.

  • NO_PREREQUISITE_CHECKDie Prüfung der Voraussetzungen wird nicht ausgeführt.
  • PREREQUISITE_CHECKDie Prüfung der Voraussetzungen wird ausgeführt. Dies ist die Standardeinstellung.
Boolean
input_upgradegdb_check

Gibt an, ob die Aktualisierung ausgeführt wird.

  • NO_UPGRADEDie Aktualisierung wird nicht ausgeführt.
  • UPGRADEDie Aktualisierung wird ausgeführt. Dies ist die Standardeinstellung.
Boolean

Codebeispiel

Geodatabase aktualisieren – Beispiel 1 (Python-Fenster)

Mit dem folgenden Skript im Python-Fenster wird veranschaulicht, wie Sie die Funktion "UpgradeGDB" im unmittelbaren Modus verwenden, um eine File-Geodatabase zu aktualisieren:

import arcpy
Output_Workspace = "C:\\temp\\Default.gdb"
Default_gdb = "C:\\temp\\Default.gdb"
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
Geodatabase aktualisieren – Beispiel 2 (eigenständiges Skript für File-Geodatabase)

Mit dem folgenden eigenständigen Python-Skript wird veranschaulicht, wie die Funktion "UpgradeGDB" in einem Python-Skript verwendet wird, um eine File-Geodatabase zu aktualisieren:

 
# Description: upgrade a geodatabase
 
# Import arcpy module
import arcpy

# Local variables:
Output_Workspace = "C:\\temp\\Default.gdb"
Default_gdb = "C:\\temp\\Default.gdb"

# Process: Upgrade Geodatabase
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
Geodatabase aktualisieren – Beispiel 3 (eigenständiges Skript mit einer .sde-Verbindungsdatei)

Mit dem folgenden eigenständigen Python-Skript wird veranschaulicht, wie die Funktion "UpgradeGDB" in einem Python-Skript verwendet wird, um eine ArcSDE-Geodatabase mithilfe einer vorhandenen .sde-Verbindungsdatei zu aktualisieren:

# Description: upgrade a geodatabase

# Import arcpy module
import arcpy

# Local variables:
Output_Workspace = "C:\\Documents and Settings\<user>\Application Data\ESRI\ArcCatalog\Connection to gdb.sde"
Default_gdb = "C:\\Documents and Settings\<user>\Application Data\ESRI\ArcCatalog\Connection to gdb.sde"

# Process: Upgrade Geodatabase
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
Geodatabase aktualisieren – Beispiel 4 (eigenständiges Skript für ArcSDE in Oracle)

Mit dem folgenden eigenständigen Python-Skript wird veranschaulicht, wie die Funktion "UpgradeGDB" in einem Python-Skript verwendet wird, um eine ArcSDE-Geodatabase in Oracle zu aktualisieren:

"""
Name: upgrade_gdb.py
Description: Provide connection information to an Enterprise geodatabase 
and upgrade the geodatabase
Type upgrade_gdb.py -h or upgrade_gdb.py --help for usage
"""

# Import system modules
import arcpy, os, optparse, sys


# Define usage and version
parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0; valid for 10.0 and 10.1 release")

#Define help and options
parser.add_option ("-s", dest="Server", type="string", default="", help="RDBMS server name")
parser.add_option ("-i", dest="Service", type="string", default="", help="Use direct connection syntax")
parser.add_option ("--auth", dest="account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive):  DATABASE_AUTH, OPERATING_SYSTEM_AUTH.  Default=DATABASE_AUTH")
parser.add_option ("-u", dest="User", type="string", default="", help="Geodatabase administrator user name")
parser.add_option ("-p", dest="Password", type="string", default="", help="Geodatabase administrator password")
parser.add_option ("-v", dest="Version", type="string", help="ArcSDE version name")
parser.add_option ("--upgrade", dest="Upgrade", type="choice", choices=['TRUE', 'FALSE'], default="FALSE", help="Upgrade Options (case-sensitive):  TRUE=Perform Pre-requisite check and upgrade geodatabase, FALSE=Perform Pre-requisite check only.  Default=FALSE")                   
parser.add_option ("-d", dest="Database", type="string", default="none", help="Database name:  Not required for Oracle")


# Check if value entered for option
try:
	(options, args) = parser.parse_args()

	
#Check if no system arguments (options) entered
	if len(sys.argv) == 1:
		print "%s: error: %s\n" % (sys.argv[0], "No command options given")
		parser.print_help()
		sys.exit(3)
	

	#Usage parameters for spatial database connection to upgrade
	server = options.Server
	service = options.Service	
	account_authentication = options.account_authentication.upper()
	username = options.User.lower() 
	password = options.Password	
	version = options.Version.upper()
	do_upgrade = options.Upgrade
	database = options.Database.lower()
	
	
	# Get the current product license
	product_license=arcpy.ProductInfo()
	
	
	# Checks required license level to upgrade
	if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE':
		print "\n" + product_license + " license found!" + "  Enterprise geodatabase upgrade requires an ArcEditor, ArcInfo, ArcGIS Engine Geodatabase Update, or ArcGIS Server license."
		sys.exit("Re-authorize ArcGIS before upgrading.")
	else:
		print "\n" + product_license + " license available!  Continuing to upgrade..."
		arcpy.AddMessage("+++++++++")
	
	
	# Check if direct connection
	if service.find(":") <> -1:  #This is direct connect
		ServiceConnFileName = service.replace(":", "")
		ServiceConnFileName = ServiceConnFileName.replace(";", "")
		ServiceConnFileName = ServiceConnFileName.replace("=", "")
		ServiceConnFileName = ServiceConnFileName.replace("/", "")
		ServiceConnFileName = ServiceConnFileName.replace("\\", "")
	else:
		arcpy.AddMessage("\n+++++++++")
		arcpy.AddMessage("Exiting!!")
		arcpy.AddMessage("+++++++++")
		sys.exit("\nSyntax for a direct connection in the Service parameter is required for geodatabase upgrade.")
	
	
	# Local variables
	Conn_File_NameT = server + "_" + ServiceConnFileName + "_" + database + "_" + username    
	
	if os.environ.get("TEMP") == None:
		temp = "c:\\temp"	
	else:
		temp = os.environ.get("TEMP")
	
	if os.environ.get("TMP") == None:
		temp = "/usr/tmp"		
	else:
		temp = os.environ.get("TMP")  
	
	Connection_File_Name = temp + os.sep + Conn_File_NameT + ".sde"
	
	
	# Check for the .sde file and delete it if present
	arcpy.env.overwriteOutput=True
	
	
	# Variables defined within the script; other variable options commented out at the end of the line
	saveUserInfo = "SAVE_USERNAME" #DO_NOT_SAVE_USERNAME
	saveVersionInfo = "SAVE_VERSION" #DO_NOT_SAVE_VERSION
	
	
	print "\nCreating ArcSDE Connection File...\n"
	# Process: Create ArcSDE Connection File...
	# Usage: out_folder_path, out_name, server, service, database, account_authentication, username, password, save_username_password, version,   save_version_info
	arcpy.CreateArcSDEConnectionFile_management(temp, Conn_File_NameT, server, service, database, account_authentication, username, password, saveUserInfo, version, saveVersionInfo)
	for i in range(arcpy.GetMessageCount()):
		if "000565" in arcpy.GetMessage(i):   #Check if database connection was successful
			arcpy.AddReturnMessage(i)
			arcpy.AddMessage("\n+++++++++")
			arcpy.AddMessage("Exiting!!")
			arcpy.AddMessage("+++++++++\n")
			sys.exit(3)            
		else:
			arcpy.AddReturnMessage(i)
			arcpy.AddMessage("+++++++++\n")
	
	
	# Process: Upgrade geodatabase...
	try:
		if do_upgrade.lower() == "true":
			print "Upgrading Geodatabase...\n"
			arcpy.UpgradeGDB_management(Connection_File_Name, "PREREQUISITE_CHECK", "UPGRADE")
			for i in range(arcpy.GetMessageCount()):
				arcpy.AddReturnMessage(i)
			arcpy.AddMessage("+++++++++\n")
	
		else:
			print "Running Pre-Requisite Check...\n"
			arcpy.UpgradeGDB_management(Connection_File_Name, "PREREQUISITE_CHECK", "NO_UPGRADE")
			for i in range(arcpy.GetMessageCount()):
				arcpy.AddReturnMessage(i)
			arcpy.AddMessage("+++++++++\n")
	
	except:
		for i in range(arcpy.GetMessageCount()):
			arcpy.AddReturnMessage(i)
			
#Check if no value entered for option	
except SystemExit as e:
	if e.code == 2:
		parser.usage = ""
		print "\n"
		parser.print_help()   
		parser.exit(2)
Geodatabase aktualisieren – Beispiel 5 (eigenständiges Skript für ArcSDE-Geodatabases außer Oracle)

Mit dem folgenden eigenständigen Python-Skript wird veranschaulicht, wie die Funktion "UpgradeGDB" in einem Python-Skript verwendet wird, um eine ArcSDE-Geodatabase in IBM DB2, Informix, Microsoft SQl Server oder PostgreSQL zu aktualisieren:

"""
Name: upgrade_gdb.py
Description: Provide connection information to an Enterprise geodatabase 
and upgrade the geodatabase
Type upgrade_gdb.py -h or upgrade_gdb.py --help for usage
"""

# Import system modules
import arcpy, os, optparse, sys


# Define usage and version
parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0; valid for 10.0 and 10.1 release")

#Define help and options
parser.add_option ("-s", dest="Server", type="string", default="", help="RDBMS server name")
parser.add_option ("-i", dest="Service", type="string", default="", help="Use direct connection syntax")
parser.add_option ("--auth", dest="account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive):  DATABASE_AUTH, OPERATING_SYSTEM_AUTH.  Default=DATABASE_AUTH")
parser.add_option ("-u", dest="User", type="string", default="", help="Geodatabase administrator user name")
parser.add_option ("-p", dest="Password", type="string", default="", help="Geodatabase administrator password")
parser.add_option ("-v", dest="Version", type="string", help="ArcSDE version name")
parser.add_option ("--upgrade", dest="Upgrade", type="choice", choices=['TRUE', 'FALSE'], default="FALSE", help="Upgrade Options (case-sensitive):  TRUE=Perform Pre-requisite check and upgrade geodatabase, FALSE=Perform Pre-requisite check only.  Default=FALSE")                   
parser.add_option ("-d", dest="Database", type="string", default="none", help="Database name:  Not required for Oracle")


# Check if value entered for option
try:
	(options, args) = parser.parse_args()

	
#Check if no system arguments (options) entered
	if len(sys.argv) == 1:
		print "%s: error: %s\n" % (sys.argv[0], "No command options given")
		parser.print_help()
		sys.exit(3)
	

	#Usage parameters for spatial database connection to upgrade
	server = options.Server
	service = options.Service	
	account_authentication = options.account_authentication.upper()
	username = options.User.lower() 
	password = options.Password	
	version = options.Version.upper()
	do_upgrade = options.Upgrade
	database = options.Database.lower()
	
	
	# Get the current product license
	product_license=arcpy.ProductInfo()
	
	
	# Checks required license level to upgrade
	if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE':
		print "\n" + product_license + " license found!" + "  Enterprise geodatabase upgrade requires an ArcEditor, ArcInfo, ArcGIS Engine Geodatabase Update, or ArcGIS Server license."
		sys.exit("Re-authorize ArcGIS before upgrading.")
	else:
		print "\n" + product_license + " license available!  Continuing to upgrade..."
		arcpy.AddMessage("+++++++++")
	
	
	# Check if direct connection
	if service.find(":") <> -1:  #This is direct connect
		ServiceConnFileName = service.replace(":", "")
		ServiceConnFileName = ServiceConnFileName.replace(";", "")
		ServiceConnFileName = ServiceConnFileName.replace("=", "")
		ServiceConnFileName = ServiceConnFileName.replace("/", "")
		ServiceConnFileName = ServiceConnFileName.replace("\\", "")
	else:
		arcpy.AddMessage("\n+++++++++")
		arcpy.AddMessage("Exiting!!")
		arcpy.AddMessage("+++++++++")
		sys.exit("\nSyntax for a direct connection in the Service parameter is required for geodatabase upgrade.")
	
	
	# Local variables
	Conn_File_NameT = server + "_" + ServiceConnFileName + "_" + database + "_" + username    
	
	if os.environ.get("TEMP") == None:
		temp = "c:\\temp"	
	else:
		temp = os.environ.get("TEMP")
	
	if os.environ.get("TMP") == None:
		temp = "/usr/tmp"		
	else:
		temp = os.environ.get("TMP")  
	
	Connection_File_Name = temp + os.sep + Conn_File_NameT + ".sde"
	
	
	# Check for the .sde file and delete it if present
	arcpy.env.overwriteOutput=True
	
	
	# Variables defined within the script; other variable options commented out at the end of the line
	saveUserInfo = "SAVE_USERNAME" #DO_NOT_SAVE_USERNAME
	saveVersionInfo = "SAVE_VERSION" #DO_NOT_SAVE_VERSION
	
	
	print "\nCreating ArcSDE Connection File...\n"
	# Process: Create ArcSDE Connection File...
	# Usage: out_folder_path, out_name, server, service, database, account_authentication, username, password, save_username_password, version,   save_version_info
	arcpy.CreateArcSDEConnectionFile_management(temp, Conn_File_NameT, server, service, database, account_authentication, username, password, saveUserInfo, version, saveVersionInfo)
	for i in range(arcpy.GetMessageCount()):
		if "000565" in arcpy.GetMessage(i):   #Check if database connection was successful
			arcpy.AddReturnMessage(i)
			arcpy.AddMessage("\n+++++++++")
			arcpy.AddMessage("Exiting!!")
			arcpy.AddMessage("+++++++++\n")
			sys.exit(3)            
		else:
			arcpy.AddReturnMessage(i)
			arcpy.AddMessage("+++++++++\n")
	
	
	# Process: Upgrade geodatabase...
	try:
		if do_upgrade.lower() == "true":
			print "Upgrading Geodatabase...\n"
			arcpy.UpgradeGDB_management(Connection_File_Name, "PREREQUISITE_CHECK", "UPGRADE")
			for i in range(arcpy.GetMessageCount()):
				arcpy.AddReturnMessage(i)
			arcpy.AddMessage("+++++++++\n")
	
		else:
			print "Running Pre-Requisite Check...\n"
			arcpy.UpgradeGDB_management(Connection_File_Name, "PREREQUISITE_CHECK", "NO_UPGRADE")
			for i in range(arcpy.GetMessageCount()):
				arcpy.AddReturnMessage(i)
			arcpy.AddMessage("+++++++++\n")
	
	except:
		for i in range(arcpy.GetMessageCount()):
			arcpy.AddReturnMessage(i)
			
#Check if no value entered for option	
except SystemExit as e:
	if e.code == 2:
		parser.usage = ""
		print "\n"
		parser.print_help()   
		parser.exit(2)

Umgebungen

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Verwandte Themen

Lizenzinformationen

ArcView: Erfordert ArcEditor- oder ArcInfo-Lizenz zum Aktualisieren von ArcSDE-Geodatabases. Für Personal- und File-Geodatabases ist nur eine ArcView-Lizenz erforderlich.
ArcEditor: Ja
ArcInfo: Ja

11/13/2014