Resumen
Actualiza una geodatabase a la última versión de ArcGIS para aprovechar la nueva funcionalidad.
Debe tener la versión actual de ArcGIS for Desktop or ArcGIS for Server instalada en el equipo desde el que ejecutará la actualización. En las geodatabases corporativas, debe conectarse directamente a la geodatabase para llevar a cabo la actualización; no puede conectarse a través de un servicio de ArcSDE.
Uso
La herramienta Actualizar geodatabase acepta como entrada una geodatabase personal, una geodatabase de archivos o un archivo de conexión .sde.
Desde ArcGIS for Desktop Basic no se pueden actualizar geodatabases de escritorio, de grupo de trabajo ni corporativas.
Antes de actualizar su geodatabase corporativa, asegúrese de haber realizado los pasos preparatorios necesarios para el sistema de administración de bases de datos que está utilizando, incluida la creación de una copia de seguridad de la base de datos.
- Para determinar la versión de la geodatabase, haga clic con el botón derecho en la geodatabase del árbol de catálogo y haga clic en Propiedades. La sección Estado de actualización de la pestaña General muestra la versión de ArcGIS de la geodatabase e indica si la geodatabase se puede actualizar a la última versión de ArcGIS.
- Debe marcar al menos uno de los dos parámetros, Realizar verificación de prerrequisitos o Actualizar geodatabase, o marcar ambos parámetros. Si no se marca ninguno, se producirá un error.
- Esri le recomienda que utilice la verificación de requisitos previos antes de actualizar la geodatabase para determinar si la geodatabase está lista para ser actualizada. Si no se cumple alguno de estos requisitos previos, la herramienta registra un error en la ventana Resultados y no actualiza la geodatabase. Esto evita que comience la actualización y que luego falle en la mitad del proceso por no haberse cumplido uno de estos requisitos previos. Si falla alguna verificación, debe corregir el problema y reiniciar el proceso de actualización.
- Las actualizaciones desde las versiones beta de la geodatabase no están admitidas.
- La opción Realizar verificación de prerrequisitos realiza diferentes verificaciones para cada tipo de geodatabase. En las geodatabases personales y de archivos, determina si algunas de las opciones siguientes son verdaderas:
- La geodatabase es de sólo lectura.
- No hay otros usuarios conectados a la geodatabase.
- La conexión actual no está editando datos en la geodatabase.
- Se puede abrir toda la información contenida en las tablas del sistema de geodatabase actual.
- En las geodatabases de escritorio, de grupo de trabajo y corporativas, determina si se cumplen los siguientes criterios:
- El usuario conectado cuenta con los privilegios correspondientes para actualizar.
- El usuario conectado no está editando datos en la geodatabase.
- No hay otros usuarios conectados a la geodatabase.
- La base de datos puede admitir tipos de datos XML.
- Se puede abrir toda la información contenida en las tablas del sistema de geodatabase actual.
- En las las geodatabases en PostgreSQL y Oracle, detecta si la biblioteca ST_Geometry en la ubicación de la base de datos es actual.
- En las geodatabases corporativas de un esquema de usuario en Oracle, detecta si la geodatabase maestra está actualizada.
Sintaxis
UpgradeGDB_management (input_workspace, input_prerequisite_check, input_upgradegdb_check)
Parámetro | Explicación | Tipo de datos |
input_workspace | Especifique la geodatabase que se va a actualizar. Al actualizar una geodatabase de escritorio, de grupo de trabajo o corporativa, especifique un archivo de conexión de base de datos (.sde) que se conecte a la geodatabase como administrador de la misma. | Workspace |
input_prerequisite_check | Especifique si se debe ejecutar la verificación de requisitos previos antes de actualizar la geodatabase.
| Boolean |
input_upgradegdb_check | Especifique si se debe actualizar la geodatabase o no.
| Boolean |
Ejemplo de código
Ejemplo 1 de UpgradeGeodatabase (ventana de Python)
La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función UpgradeGDB en el modo inmediato para actualizar una geodatabase de archivos.
import arcpy
Output_Workspace = "C:/temp/Default.gdb"
Default_gdb = "C:/temp/Default.gdb"
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
Ejemplo 2 de UpgradeGeodatabase (secuencia de comandos independiente para geodatabase de archivos)
La siguiente secuencia de comandos de Python independiente muestra cómo utilizar la función UpgradeGDB en una secuencia de comandos de Python para actualizar una geodatabase de archivos:
# 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")
Ejemplo 3 de UpgradeGeodatabase (secuencia de comandos independiente mediante un archivo de conexión .sde)
La siguiente secuencia de comandos de Python independiente muestra cómo utilizar la función UpgradeGDB en una secuencia de comandos de Python para actualizar una geodatabase corporativa mediante un archivo de conexión .sde existente:
# 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")
Ejemplo 4 de UpgradeGeodatabase (secuencia de comandos independiente para una geodatabase corporativa)
La siguiente secuencia de comandos de Python independiente muestra cómo utilizar la función UpgradeGDB en una secuencia de comandos de Python para actualizar una geodatabase corporativa:
"""
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)
Entornos
Información sobre licencias
- ArcGIS for Desktop Basic: Sí
- ArcGIS for Desktop Standard: Sí
- ArcGIS for Desktop Advanced: Sí