PostgreSQL での追加のエンタープライズ ジオデータベースの作成

ArcGIS for Server サイトに PostgreSQL データベース クラスタとエンタープライズ ジオデータベースがある場合、[エンタープライズ ジオデータベースの作成(Create Enterprise Geodatabase)] ジオプロセシング ツールを呼び出す Python スクリプトを使用して、PostgreSQL でさらに多くのエンタープライズ ジオデータベースを作成することができます。

追加のジオデータベースを作成する理由には、次のようなものがあります。

手順:
  1. ArcGIS for Server サイトへの SSH 接続を確立します。
  2. テキスト エディタに次のスクリプトをコピーします。
    #Import arcpy module
    import arcpy
    
    arcpy.CreateEnterpriseGeodatabase("PostgreSQL", "<aws instance name>", "<new geodatabase name>", "DATABASE_AUTH", "postgres", "<postgres password>", "", "sde", "<sde password>", "", "/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.1/sysgen/keycodes")
    
  3. サイトの情報に合わせて大なり小なり記号(<>)内の値を変更して、*.py ファイルで保存します。
  4. コマンド シェルを開いて、スクリプトを指すよう環境変数を設定します。
  5. スクリプトを実行して、ジオデータベースを作成します。

    指定した情報が正しい場合、ジオデータベースが正しく作成されたことを示すメッセージが表示されます。エラー メッセージが表示された場合は、指定した情報が正しいかどうかを確認してください(たとえば、使用したパスワードが正しいか、データベース名が有効かなど)。

    ヒントヒント:

    data/pg_log の PostgreSQL ログ ファイルで、拡張エラー メッセージを確認してください。

  6. これで、新しいジオデータベースが完成しました。ジオデータベースのデータを作成するすべてのログイン ロールに対して、ユーザ スキーマをデータベースに追加する必要があります。

  7. このスクリプトをテキスト エディタにコピーして新しいジオデータベースに接続し、ログイン ロールとそれに対応するスキーマを作成します。あるいは、既存のログイン ロールを指定して、そのスキーマをデータベース内に作成できます。
    #Import arcpy module
    import arcpy
    
    CreateDatabaseConnection_management("<path to directory where connection file to be created>", "<connection file name>.sde", "POSTGRESQL", "<aws instance name>", "DATABASE_AUTH", "postgres", "<postgres password>", "<geodatabase name>", "SAVE_USERNAME")
    
    CreateDatabaseUser_management("<path to directory with connection file>/<connection file name>.sde", "DB", "<login role name>", "<login password>")
    
  8. サイトのデータベースとログイン ロールの情報に合わせて大なり小なり記号(<>)内の値を変更して、*.py ファイルで保存します。

    たとえば、新しいジオデータベース内にデフォルト ログイン ロール(所有者)でデータを作成する場合、スクリプト内で所有者のログイン ロールを指定します。

  9. コマンド シェルを開いて、スクリプトを指すよう環境変数を設定します。
  10. スクリプトを実行して、ログイン ロールとスキーマ(または既存のログイン ロールのスキーマ)を作成します。

    スクリプトでは、スキーマに対する USAGE 権限がパブリックに付与されます。

  11. 新しいジオデータベースにデータを作成する各ログイン ロールに対して、この手順を繰り返します。

関連トピック

9/15/2013