Secuenciar los comandos de la creación de geodatabase en Informix
Puede copiar y alterar una secuencia de comandos de ejemplo para crear una geodatabase en una base de datos IBM Informix.
Existen tareas adicionales que debe completar antes de ejecutar la secuencia de comandos. Aquellas tareas y secuencias de comandos en si se describen en los siguientes pasos:
- Instale y configure Informix en el servidor.
- Asegúrese de que el módulo de búsqueda de texto básico de Informix esté registrado.
- Registre el módulo DataBlade espacial de Informix.
- Cree un inicio de sesión en el sistema operativo denominado sde en el servidor de Informix.
- Elimine los comentarios del parámetro VPCLASS en el archivo ONCONFIG de Informix para ejecutar las rutinas definidas por el usuario de Java (UDR), después vuelva a iniciar Informix.
- Cree una base de datos en la instancia de Informix y configure los espacios de almacenamiento.
- Conceda la función EXTEND y el privilegio RESOURCE al usuario sde que creo en el paso 4.
- Si ejecutará la secuencia de comandos Python desde un equipo diferente al servidor Informix, instale y configure el cliente Informix en el equipo desde el cual ejecutará la secuencia de comandos.
El cliente Informix se puede descargar del Portal de atención al cliente de Esri. Vea la documentación de Informix para obtener las instrucciones para instalar el cliente. Si está instalando el cliente Informix para ejecutarlo con un cliente ArcGIS de 32 bits, instale el cliente IConnect de Informix de 32 bits. Si está instalando el cliente Informix para ejecutarlo con un ArcGIS for Server, instale el cliente IConnect de 64 bits. Vea Configurar una conexión con Informix para obtener más información.
- Copie esta secuencia de comandos de ejemplo a la ventana Python en ArcGIS for Desktop o a cualquier Python IDE, como PythonWin o WING, en un equipo en el cual esté instalado ArcGIS for Desktop (Standard o Advanced), ArcGIS for Server (Standard o Advanced) o ArcGIS Engine con extensión Geodatabase Update.
Esta secuencia de comandos de ejemplo habilita la funcionalidad de geodatabase en una base de datos Informix existente:
""" Name: enable_enterprise_gdb.py Description: Provide connection information to an enterprise database and enable enterprise geodatabase. Type enable_enterprise_gdb.py -h or enable_enterprise_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 10.1 release") #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, POSTGRESQL, DB2, INFORMIX, or DB2ZOS.") 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 ("-D", dest="Database", type="string", default="none", help="Database name: Not required for Oracle") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file") # 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 database_type = options.Database_type.upper() instance = options.Instance account_authentication = options.account_authentication.upper() username = options.User.lower() password = options.Password database = options.Database.lower() license = options.Authorization_file if( database_type ==""): print " \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified.") parser.print_help() sys.exit(3) if (license == ""): print " \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified.") parser.print_help() sys.exit(3) if (database_type == "SQLSERVER"): database_type = "SQL_SERVER" # Get the current product license product_license=arcpy.ProductInfo() if (license == ""): print " \n%s: error: %s\n" % (sys.argv[0], "Authorization file (-l) must be specified.") parser.print_help() sys.exit(3) # Checks required license level if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE': print "\n" + product_license + " license found!" + " Enabling enterprise geodatabase functionality 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 enabling an enterprise geodatabase.") else: print "\n" + product_license + " license available! Continuing to enable..." 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") # Process: Enable geodatabase... try: print "Enabling Enterprise Geodatabase...\n" arcpy.EnableEnterpriseGeodatabase_management(input_workspace=Connection_File_Name_full_path, authorization_file=license) 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)
- Altere la secuencia de comando para incluir la información específica a su sitio.
- Ejecute la secuencia de comandos que copió y que modificó.
Un archivo de registro para la creación de geodatabase (GDBCreateGeodatabase<#>.log) se escribe en el directorio especificado para la variable TEMP o TMP en el equipo en el que se ejecuta la secuencia de comandos.