Import/Export Servers¶
サーバー定義(およびそのグループ)をJSONファイルにエクスポートし、同じまたは別のシステムに再インポートして、pgAdminの簡単な事前構成を有効にできます。
pgAdmin4GUIの使用¶
Import/ExportServers... ツールを起動するには、メニューバーの Tools に移動して、 Import/ExportServers オプションをクリックします。
Import/Export フィールドを使用して、インポートまたはエクスポートするサーバーグループ/サーバーを選択します。
ファイル名 フィールドを使用して、サーバーをインポートするJSONファイルを選択するか、サーバーをJSON形式でエクスポートするエクスポートの場合は新しいファイルを作成します。
既存のサーバーをすべて削除しますか? フィールドを使用して、新しく選択したサーバーをインポートする前に既存のサーバーをすべて削除するかどうかを指定します。このフィールドは、インポートサーバーの場合にのみ適用されます。
[ 次へ ]ボタンをクリックして続行するか、[ X ]ボタンをクリックしてウィザードを閉じます。
インポート/エクスポートするサーバーグループ/サーバーを選択します。
[ 次へ ]ボタンをクリックして続行するか、[ X ]ボタンをクリックしてウィザードを閉じます。
[概要]ページでインポート/エクスポートするサーバーの概要を確認します。
Finish ボタンをクリックしてウィザードを閉じます。
「setup.py」コマンドラインスクリプトの使用¶
注釈
setup.py スクリプトを使用してサーバーをエクスポートまたはインポートするには、通常pgAdminの実行に使用されるPythonインタープリターを使用して、必要なPythonパッケージが利用可能であることを確認する必要があります。ほとんどのパッケージでは、これはインストールディレクトリにあるPythonVirtualEnvironmentにあります。プラットフォームネイティブパッケージを使用する場合、PythonのシステムインストールがpgAdminによって使用される場合があります。
サーバーのエクスポート¶
インストールで定義されたサーバーをエクスポートするには、 --dump-servers コマンドラインオプションに続けて名前(および必要な場合はパス)を指定して setup.py を呼び出します。デフォルトでは、デスクトップモードユーザーが所有するサーバーがダンプされます(デフォルトではpgadmin4@pgadmin.org- config.py のDESKTOP_USER設定を参照)。これは、 --user コマンドラインオプションでオーバーライドできます。同じシステムにpgAdminの複数の構成がある場合があります。特定のpgAdmin構成DBファイルからサーバーをダンプするには、 --sqlite-path オプションを使用できます。デスクトップモードでpgAdminを実行するときにもこのオプションを使用することをお勧めします。デフォルトでは、 config.py のSQLITE_PATH設定が使用されます。例:
/path/to/python /path/to/setup.py --dump-servers output_file.json
# or, to specify a non-default user name:
/path/to/python /path/to/setup.py --dump-servers output_file.json --user user@example.com
# to specify a pgAdmin config DB file:
/path/to/python /path/to/setup.py --dump-servers output_file.json --sqlite-path /path/to/pgadmin4.db
特定のサーバーのみをエクスポートするには、 --servers オプションを使用して、1つ以上のサーバーIDをリストします。例:
/path/to/python /path/to/setup.py --dump-servers output_file.json --server 1 2 5
サーバーのインポート¶
JSONファイルで定義されたサーバーをインポートするには、 --load-servers コマンドラインオプションに続けて、サーバー定義を含むJSONファイルの名前(および必要な場合はパス)を指定します。サーバーはデスクトップモードユーザーが所有します(デフォルトではpgadmin4@pgadmin.org- config.py のDESKTOP_USER設定を参照)。これは、 --user コマンドラインオプションでオーバーライドできます。同じシステムにpgAdminの複数の構成がある場合があります。デフォルトの動作では、インポートされたサーバーは既存のリストに追加されます。これにより、重複が発生する場合があります。これは、サーバーのリストを新しくインポートしたものに置き換える --replace コマンドラインオプションでオーバーライドできます。サーバーを特定のpgAdmin構成DBファイルにロードするには、 --sqlite-path オプションを使用できます。デスクトップモードでpgAdminを実行するときにもこのオプションを使用することをお勧めします。デフォルトでは、 config.py のSQLITE_PATH設定が使用されます。例:
/path/to/python /path/to/setup.py --load-servers input_file.json
# or, to replace the list of servers with the newly imported one:
/path/to/python /path/to/setup.py --load-servers input_file.json --replace
# or, to specify a non-default user name to own the new servers:
/path/to/python /path/to/setup.py --load-servers input_file.json --user user@example.com
# to specify a pgAdmin config DB file:
/path/to/python /path/to/setup.py --load-servers input_file.json --sqlite-path /path/to/pgadmin4.db
構成データベースにまだ存在しないサーバーグループでサーバーが定義されている場合、必要なグループが作成されます。
JSON形式¶
サーバーをインポートまたはエクスポートするときに使用されるJSONファイル形式は非常に簡単で、多くの属性を持つサーバーのリストが含まれています。次の属性はすべてのサーバー定義に存在する必要があります。Name、Group、Port、Username、SSLMode、MaintenanceDBと、Host、HostAddr、またはServiceのいずれか。
パスワードフィールドはインポートまたはエクスポートできません。
次の例は、最小限に定義されたサーバーと完全に定義されたサーバーの両方を示しています。
{
"Servers": {
"1": {
"Name": "Minimally Defined Server",
"Group": "Server Group 1",
"Port": 5432,
"Username": "postgres",
"Host": "localhost",
"SSLMode": "prefer",
"MaintenanceDB": "postgres"
},
"2": {
"Name": "Fully Defined Server",
"Group": "Server Group 2",
"Host": "host.domain.com",
"HostAddr": "192.168.1.2",
"Port": 5432,
"MaintenanceDB": "postgres",
"Username": "postgres",
"Role": "my_role_name",
"SSLMode": "require",
"Comment": "This server has every option configured in the JSON",
"DBRestriction": "live_db test_db",
"PassFile": "/path/to/pgpassfile",
"SSLCert": "/path/to/sslcert.crt",
"SSLKey": "/path/to/sslcert.key",
"SSLRootCert": "/path/to/sslroot.crt",
"SSLCrl": "/path/to/sslcrl.crl",
"SSLCompression": 1,
"Shared": false,
"BGColor": "#ff9900",
"FGColor": "#000000",
"Service": "postgresql-10",
"Timeout": 60,
"UseSSHTunnel": 1,
"TunnelHost": "192.168.1.253",
"TunnelPort": 22,
"TunnelUsername": "username",
"TunnelAuthentication": 0
}
}
}