Mettre à niveau la géodatabase (Data Management)

Récapitulatif

Met à niveau une géodatabase pour tirer pleinement parti des nouvelles fonctionnalités offertes par la dernière version d'ArcGIS. Pour être valide, l'entrée doit être une géodatabase fichier ou personnelle, un fichier de connexion sde ou se présenter sous la forme d'informations de connexion pour une géodatabase ArcSDE.

Vous devez disposer de la version actuelle d'ArcGIS Desktop (ArcEditor ou ArcInfo), d'ArcGIS Engine Runtime avec l'extension Geodatabase Update ou d'ArcGIS Server Standard ou Avancé sur l'ordinateur sur lequel vous allez exécuter la mise à niveau. Pour les géodatabases ArcSDE, vous devez avoir une connexion directe à la géodatabase pour exécuter la mise à niveau. Les pilotes de connexion directe qui permettent de se connecter aux géodatabases plus anciennes prises en charge, sont installés automatiquement avec ArcGIS Desktop, ArcGIS Engine et ArcGIS Server.

Utilisation

Syntaxe

UpgradeGDB_management (input_workspace, input_prerequisite_check, input_upgradegdb_check)
ParamètreExplicationType de données
input_workspace

Géodatabase personnelle, fichier ou ArcSDE à mettre à niveau

Workspace
input_prerequisite_check

Indique si le contrôle préalable est exécuté avant de mettre à niveau la géodatabase

  • NO_ PREREQUISITE_CHECKLe contrôle préalable n'est pas exécuté.
  • PREREQUISITE_CHECKLe contrôle préalable est exécuté. Il s'agit de l'option par défaut.
Boolean
input_upgradegdb_check

Indique si la mise à niveau est effectuée.

  • NO_UPGRADELa mise à niveau n'est pas exécutée.
  • UPGRADELa mise à niveau est exécutée. Il s'agit de l'option par défaut.
Boolean

Exemple de code

Exemple 1 d'utilisation de l'outil UpgradeGeodatabase (fenêtre Python)

Le script de fenêtre Python suivant illustre l'utilisation de la fonction UpgradeGDB en mode immédiat pour mettre à niveau une géodatabase fichier :

import arcpy
Output_Workspace = "C:\\temp\\Default.gdb"
Default_gdb = "C:\\temp\\Default.gdb"
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
Exemple 2 d'utilisation de l'outil UpgradeGeodatabase (script autonome pour une géodatabase fichier)

Le script Python autonome suivant illustre l'utilisation de la fonction UpgradeGDB dans le script Python pour mettre à niveau une géodatabase fichier :

 
# 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")
Exemple 3 d'utilisation de l'outil UpgradeGeodatabase (script autonome à l'aide d'un fichier de connexion .sde)

Le script Python autonome suivant illustre l'utilisation de la fonction UpgradeGDB dans le script Python pour mettre à niveau une géodatabase ArcSDE à l'aide d'un fichier de connexion .sde existant :

# 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")
Exemple 4 d'utilisation de l'outil UpgradeGeodatabase (script autonome pour ArcSDE sur Oracle)

Le script Python autonome suivant illustre l'utilisation de la fonction UpgradeGDB dans le script Python pour mettre à niveau une géodatabase ArcSDE dans Oracle :

"""
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)
Exemple 5 d'utilisation de l'outil UpgradeGeodatabase (script autonome pour ArcSDE sur des bases de données autres qu'Oracle)

Le script Python autonome suivant illustre l'utilisation de la fonction UpgradeGDB dans le script Python pour mettre à niveau une géodatabase ArcSDE dans IBM DB2, Informix, Microsoft SQL Server ou PostgreSQL :

"""
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)

Environnements

Cet outil n'utilise pas d'environnement de géotraitement

Informations de licence

ArcView : Obligatoire Licence ArcEditor ou ArcInfo pour mettre à niveau des géodatabases ArcSDE. Pour les géodatabases personnelles et fichier, seule une licence ArcView est requise.
ArcEditor : Oui
ArcInfo : Oui

7/10/2012