ArcGIS for Desktop

  • ドキュメント
  • 価格
  • サポート

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS for Desktop

完全なプロ仕様の GIS

ArcGIS for Server

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • 価格
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ヘルプ

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • その他...

ジオデータベースのアップグレード (Upgrade Geodatabase)

  • サマリ
  • 使用法
  • 構文
  • コードのサンプル
  • 環境
  • ライセンス情報

サマリ

新機能を利用するために、ジオデータベースを ArcGIS の最新のリリースにアップグレードします。

最新の ArcGIS for Desktop または ArcGIS for Server が、アップグレードを実行するコンピューター上にインストールされている必要があります。エンタープライズ ジオデータベースの場合、そのジオデータベースに直接接続してアップグレードする必要があります。ArcSDE サービスを介して接続することはできません。

使用法

  • [ジオデータベースのアップグレード (Upgrade Geodatabase)] ツールは、入力としてパーソナル ジオデータベース、ファイル ジオデータベース、または *.sde 接続ファイルを受け入れます。

  • ArcGIS for Desktop Basic からデスクトップ ジオデータベース、ワークグループ ジオデータベース、エンタープライズ ジオデータベースをアップグレードすることはできません。

  • エンタープライズ ジオデータベースをアップグレードする前に、データベースのバックアップの作成など、使用しているデータベース管理システムに必要な準備手順を必ず実行しておいてください。

    • DB2 のジオデータベースのアップグレード
    • Informix のジオデータベースのアップグレード
    • Oracle のジオデータベースのアップグレード
    • PostgreSQL のジオデータベースのアップグレード
    • SQL Server のジオデータベースのアップグレード

  • ジオデータベースのバージョンを特定するには、[カタログ] ツリーでジオデータベースを右クリックして [プロパティ] をクリックします。[一般] タブの [アップグレード ステータス] セクションに、ジオデータベースの ArcGIS リリースと、ジオデータベースを最新の ArcGISの リリースにアップグレードできるかどうかが表示されます。
  • [前提条件のチェックを実行] パラメーターまたは [ジオデータベースのアップグレード] パラメーターのうちの少なくとも 1 つをオンにする必要があります。両方ともオンにすることもできます。いずれかをオンにしないと、エラーが発生します。
  • ジオデータベースをアップグレードできるかどうかを特定するために、ジオデータベースをアップグレードする前に前提条件の確認を行うことをお勧めします。前提条件のいずれかに一致しない場合、[結果] ウィンドウにエラーが記録され、ジオデータベースはアップグレードされません。これによって、アップグレードの開始後に前提条件の 1 つが満たされないために、途中で失敗するという状況を避けることができます。前提条件のいずれかが満たされない場合、問題を修正してからアップグレード処理を開始する必要があります。
  • ジオデータベースのベータ版からのアップグレードはサポートされません。
  • [前提条件のチェックを実行] オプションは、ジオデータベースの種類ごとに異なるチェックを実行します。パーソナル ジオデータベースおよびファイル ジオデータベースの場合、次の条件を満たすことが確認されます。
    • ジオデータベースが読み取り専用である。
    • 他のユーザーがそのジオデータベースに接続していない。
    • 現在の接続で、ジオデータベースのデータを編集していない。
    • 現在のジオデータベース システム テーブル内のすべての情報を開くことができる。
    • デスクトップ ジオデータベース、ワークグループ ジオデータベース、およびエンタープライズ ジオデータベースの場合、次の条件を満たすことが確認されます。
      • アップグレードを行うための適切な権限を接続ユーザーが持っている。
      • 接続ユーザーがジオデータベースのデータを編集していない。
      • 他のユーザーがそのジオデータベースに接続していない。
      • データベースが XML データ タイプをサポートできる。
      • 現在のジオデータベース システム テーブル内のすべての情報を開くことができる。
      • PostgreSQL および Oracle のエンタープライズ ジオデータベースの場合、データベースの場所にある ST_Geometry ライブラリが現行のものかどうかを検出します。
      • Oracle のユーザーのスキーマにおけるエンタープライズ ジオデータベースの場合、マスター ジオデータベースがアップグレードされているかどうかを検出します。

構文

UpgradeGDB_management (input_workspace, input_prerequisite_check, input_upgradegdb_check)
パラメータ説明データ タイプ
input_workspace

アップグレードするジオデータベースを指定します。デスクトップ ジオデータベース、ワークグループ ジオデータベース、またはエンタープライズ ジオデータベースをアップグレードする場合は、そのジオデータベースにジオデータベース管理者として接続するデータベース接続ファイル (*.sde) を指定します。

Workspace
input_prerequisite_check

ジオデータベースをアップグレードする前に前提条件のチェックを実行するかどうかを指定します。

  • NO_ PREREQUISITE_CHECK —前提条件の確認が実行されません。
  • PREREQUISITE_CHECK —前提条件の確認が実行されます。これがデフォルトです。
Boolean
input_upgradegdb_check

ジオデータベースをアップグレードするかどうかを指定します。

  • NO_UPGRADE —アップグレードを実行しません。
  • UPGRADE —アップグレードを実行します。これがデフォルトです。
Boolean

コードのサンプル

UpgradeGeodatabase (ジオデータベースのアップグレード) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、UpgradeGDB (ジオデータベースのアップグレード) 関数をイミディエイト モードで使用する方法の例を示したものです。

import arcpy
Output_Workspace = "C:/temp/Default.gdb"
Default_gdb = "C:/temp/Default.gdb"
arcpy.UpgradeGDB_management(Default_gdb, "PREREQUISITE_CHECK", "UPGRADE")
UpgradeGeodatabase (ジオデータベースのアップグレード) の例 2 (ファイル ジオデータベース用スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、ファイル ジオデータベースをアップグレードする用途に、Python スクリプトで UpgradeGDB (ジオデータベースのアップグレード) 関数を使用する方法を示しています。

# 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 (ジオデータベースのアップグレード) の例 3 (*.sde 接続ファイルを使用したスタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、*.sde 接続ファイルを使用してエンタープライズ ジオデータベースをアップグレードする用途に、Python スクリプティングで UpgradeGDB (ジオデータベースのアップグレード) 関数を使用する方法を示しています。

# 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 (ジオデータベースのアップグレード) の例 4 (エンタープライズ ジオデータベース用スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、エンタープライズ ジオデータベースをアップグレードするために、Python スクリプティングで UpgradeGDB (ジオデータベースのアップグレード) 関数を使用する方法を示しています。

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

環境

  • 現在のワークスペース

ライセンス情報

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

関連トピック

  • ジオデータベース管理ツールセットの概要
このトピックへのフィードバック

ArcGIS for Desktop

  • ホーム
  • ドキュメント
  • 価格
  • サポート

ArcGIS プラットフォーム

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

Esri について

  • 会社概要
  • 採用情報
  • スタッフ ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | プライバシー | リーガル