ArcGIS for Desktop

  • Documentation
  • Pricing
  • Support

  • My Profile
  • Help
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

The mapping platform for your organization

ArcGIS for Desktop

A complete professional GIS

ArcGIS for Server

GIS in your enterprise

ArcGIS for Developers

Tools to build location-aware apps

ArcGIS Solutions

Free template maps and apps for your industry

ArcGIS Marketplace

Get apps and data for your organization

  • Documentation
  • Pricing
  • Support
Esri
  • Sign In
user
  • My Profile
  • Sign Out

Help

  • Home
  • Get Started
  • Map
  • Analyze
  • Manage Data
  • Tools
  • More...

Upgrade Geodatabase

  • Summary
  • Usage
  • Syntax
  • Code sample
  • Environments
  • Licensing information

Summary

Upgrades a geodatabase to the latest ArcGIS release to take advantage of new functionality.

You must have the current release of ArcGIS for Desktop or ArcGIS for Server installed on the computer from which you will run the upgrade. For enterprise geodatabases, you must connect directly to the geodatabase to upgrade; you cannot connect through an ArcSDE service.

Usage

  • The Upgrade Geodatabase tool accepts a personal geodatabase, file geodatabase, or .sde connection file as input.

  • You cannot upgrade desktop, workgroup, or enterprise geodatabases from ArcGIS for Desktop Basic.

  • Before you upgrade your enterprise geodatabase, be sure you have performed the preparatory steps needed for the database management system you are using, including creating a backup of the database.

    • Upgrade a geodatabase in DB2
    • Upgrade a geodatabase in Informix
    • Upgrade a geodatabase in Oracle
    • Upgrade a geodatabase in PostgreSQL
    • Upgrade a geodatabase in SQL Server

  • To determine the geodatabase version, right-click the geodatabase in the Catalog tree and click Properties. The Upgrade Status section of the General tab shows the ArcGIS release of the geodatabase and indicates if your geodatabase can be upgraded to the latest ArcGIS release.
  • You must check at least one of either the Perform Pre-Requisite Check parameter or the Upgrade Geodatabase parameter, or you can check both parameters. Not checking either results in an error.
  • Esri recommends you use the prerequisite check prior to upgrading your geodatabase to determine if your geodatabase is ready for upgrading. If any of these prerequisites is not met, the tool logs an error in the Results window and does not upgrade the geodatabase. This saves you from starting the upgrade only to have it fail partway through due to one of these prerequisites not having been met. If any checks fail, you must correct the problem and restart the upgrade process.
  • Upgrades from beta versions of the geodatabase are not supported.
  • The Perform Pre-Requisite Check option runs different checks for each type of geodatabase. For personal and file geodatabases, it determines if any of the following are true:
    • The geodatabase is read-only.
    • There are no other users connected to the geodatabase.
    • The current connection is not editing data in the geodatabase.
    • All the information within the current geodatabase system tables can be opened.
    • For desktop, workgroup, and enterprise geodatabases, it determines if the following criteria are met:
      • The connected user has the appropriate privileges to upgrade.
      • The connected user is not editing data in the geodatabase.
      • No other users are connected to the geodatabase.
      • The database is enabled to support XML data types.
      • All the information within the current geodatabase system tables can be opened.
      • For enterprise geodatabases in PostgreSQL and Oracle, it detects whether the ST_Geometry library in the database location is current.
      • For enterprise geodatabases in a user's schema in Oracle, it detects whether the master geodatabase is upgraded.

Syntax

UpgradeGDB_management (input_workspace, input_prerequisite_check, input_upgradegdb_check)
ParameterExplanationData Type
input_workspace

Specify the geodatabase to upgrade. When upgrading a desktop, workgroup, or enterprise geodatabase, specify a database connection file (.sde) that connects to the geodatabase as the geodatabase administrator.

Workspace
input_prerequisite_check

Specify whether the prerequisite check is run prior to upgrading the geodatabase.

  • NO_ PREREQUISITE_CHECK —Prerequisite check is not run.
  • PREREQUISITE_CHECK —Prerequisite check is run. This is the default.
Boolean
input_upgradegdb_check

Specify whether to upgrade the geodatabase or not.

  • NO_UPGRADE —The upgrade is not run.
  • UPGRADE —The upgrade is run. This is the default.
Boolean

Code sample

UpgradeGeodatabase example 1 (Python window)

The following Python window script demonstrates how to use the UpgradeGDB function in immediate mode to upgrade a file geodatabase:

import arcpy
Output_Workspace = "C:/temp/Default.gdb"
Default_gdb = "C:/temp/Default.gdb"
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
UpgradeGeodatabase example 2 (stand-alone script for file geodatabase)

The following stand-alone Python script demonstrates how to use the UpgradeGDB function in Python scripting to upgrade a file geodatabase:

# 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")
UpgradeGeodatabase example 3 (stand-alone script using an .sde connection file)

The following stand-alone Python script demonstrates how to use the UpgradeGDB function in Python scripting to upgrade an enterprise geodatabase using an existing .sde connection file:

# Description: upgrade a geodatabase

# Import arcpy module
import arcpy

# Local variables:
Output_Workspace = "C:/connections/gdbconnection.sde"
Default_gdb = "C:/connections/gdbconnection.sde"

# Process: Upgrade Geodatabase
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
UpgradeGeodatabase example 4 (stand-alone script for an enterprise geodatabase)

The following stand-alone Python script demonstrates how to use the UpgradeGDB function in Python scripting to upgrade an enterprise geodatabase:

"""
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
Author: Esri
"""

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


# Define usage and version
parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for " + arcpy.GetInstallInfo()['Version'] )

#Define help and options
parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS',''], default="", help="Type of enterprise DBMS:  SQLSERVER, ORACLE, or POSTGRESQL.")
parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name")
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 ("--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
	account_authentication = options.account_authentication.upper()
	username = options.User.lower() 
	password = options.Password	
	do_upgrade = options.Upgrade
	database = options.Database.lower()
	database_type = options.Database_type.upper()
	instance = options.Instance
	
	if (database_type == ""):
		print "\nDatabase type must be specified!\n"
		parser.print_help()
		sys.exit(3)
	
	if (database_type == "SQLSERVER"):
		database_type = "SQL_SERVER"
	
	# 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 ArcGIS for Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS for Server license."
		sys.exit("Re-authorize ArcGIS before upgrading.")
	else:
		print "\n" + product_license + " license available!  Continuing to upgrade..."
		arcpy.AddMessage("+++++++++")
	
	# Local variables
	instance_temp = instance.replace("\\","_")
	instance_temp = instance_temp.replace("/","_")
	instance_temp = instance_temp.replace(":","_")
	Conn_File_NameT = instance_temp + "_" + 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 = Conn_File_NameT + ".sde"
	Connection_File_Name_full_path = temp + os.sep + Conn_File_NameT + ".sde"
	
	# Check for the .sde file and delete it if present
	arcpy.env.overwriteOutput=True
	if os.path.exists(Connection_File_Name_full_path):
		os.remove(Connection_File_Name_full_path)
	
	print "\nCreating Database Connection File...\n"	
	# Process: Create Database Connection File...
	# Usage:  out_file_location, out_file_name, DBMS_TYPE, instnace, database, account_authentication, username, password, save_username_password(must be true)
	arcpy.CreateDatabaseConnection_management(out_folder_path=temp, out_name=Connection_File_Name, database_platform=database_type, instance=instance, database=database, account_authentication=account_authentication, username=username, password=password, save_user_pass="TRUE")
        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")
			
	# Check whether geodatabase needs upgrade
	isCurrent = arcpy.Describe(Connection_File_Name_full_path).currentRelease
	
	if isCurrent == True:
		print "The geodatabase is already at the current release and cannot be upgraded!"
		sys.exit("Upgrade did not run.")
	
	
	# Process: Upgrade geodatabase...
	try:
		if do_upgrade.lower() == "true":
			print "Upgrading Geodatabase...\n"
			arcpy.UpgradeGDB_management(input_workspace=Connection_File_Name_full_path, input_prerequisite_check="PREREQUISITE_CHECK", input_upgradegdb_check="UPGRADE")
			for i in range(arcpy.GetMessageCount()):
				arcpy.AddReturnMessage(i)
			arcpy.AddMessage("+++++++++\n")
	
		else:
			print "Running Pre-Requisite Check...\n"
			arcpy.UpgradeGDB_management(input_workspace=Connection_File_Name_full_path, input_prerequisite_check="PREREQUISITE_CHECK", input_upgradegdb_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)
		
	if os.path.exists(Connection_File_Name_full_path):
		os.remove(Connection_File_Name_full_path)
	
#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)

Environments

  • Current Workspace

Licensing information

  • ArcGIS for Desktop Basic: Yes
  • ArcGIS for Desktop Standard: Yes
  • ArcGIS for Desktop Advanced: Yes

Related topics

  • An overview of the Geodatabase Administration toolset

ArcGIS for Desktop

  • Home
  • Documentation
  • Pricing
  • Support

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

About Esri

  • About Us
  • Careers
  • Insiders Blog
  • User Conference
  • Developer Summit
Esri
Tell us what you think.
© Copyright 2016 Environmental Systems Research Institute, Inc. | Privacy | Legal