PostgreSQL での追加のエンタープライズ ジオデータベースの作成
ArcGIS for Server サイトに PostgreSQL データベース クラスタとエンタープライズ ジオデータベースがある場合、[エンタープライズ ジオデータベースの作成(Create Enterprise Geodatabase)] ジオプロセシング ツールを呼び出す Python スクリプトを使用して、PostgreSQL でさらに多くのエンタープライズ ジオデータベースを作成することができます。
追加のジオデータベースを作成する理由には、次のようなものがあります。
- ジオデータベースをカスタマイズする必要があるため。
デフォルトのジオデータベース(egdb および geodata)は、名前の変更ができません。また、別の表領域に移動させることもできません。ジオデータベースを別の名前に変更したい、または別の表領域に保存したい場合は、別のジオデータベースを作成する必要があります。
- ジオデータベースごとにデータをグループ化するため。
たとえば、複数の部門が独自に個別のデータを保持している場合に、グループごとに別個のジオデータベースを作成します。
- ArcGIS for Server サイトへの SSH 接続を確立します。
- テキスト エディタに次のスクリプトをコピーします。
#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")
- サイトの情報に合わせて大なり小なり記号(<>)内の値を変更して、*.py ファイルで保存します。
- コマンド シェルを開いて、スクリプトを指すよう環境変数を設定します。
- スクリプトを実行して、ジオデータベースを作成します。
指定した情報が正しい場合、ジオデータベースが正しく作成されたことを示すメッセージが表示されます。エラー メッセージが表示された場合は、指定した情報が正しいかどうかを確認してください(たとえば、使用したパスワードが正しいか、データベース名が有効かなど)。
ヒント:
data/pg_log の PostgreSQL ログ ファイルで、拡張エラー メッセージを確認してください。
- このスクリプトをテキスト エディタにコピーして新しいジオデータベースに接続し、ログイン ロールとそれに対応するスキーマを作成します。あるいは、既存のログイン ロールを指定して、そのスキーマをデータベース内に作成できます。
#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>")
- サイトのデータベースとログイン ロールの情報に合わせて大なり小なり記号(<>)内の値を変更して、*.py ファイルで保存します。
たとえば、新しいジオデータベース内にデフォルト ログイン ロール(所有者)でデータを作成する場合、スクリプト内で所有者のログイン ロールを指定します。
- コマンド シェルを開いて、スクリプトを指すよう環境変数を設定します。
- スクリプトを実行して、ログイン ロールとスキーマ(または既存のログイン ロールのスキーマ)を作成します。
スクリプトでは、スキーマに対する USAGE 権限がパブリックに付与されます。
- 新しいジオデータベースにデータを作成する各ログイン ロールに対して、この手順を繰り返します。
これで、新しいジオデータベースが完成しました。ジオデータベースのデータを作成するすべてのログイン ロールに対して、ユーザ スキーマをデータベースに追加する必要があります。