Import/Export Servers#
サーバー定義およびそのグループはJSONファイルにエクスポートし、同じまたは別のシステムに再インポートできるため、pgAdminの事前構成を簡単にできます。
pgAdmin 4 GUIを使用する#
Import/Export Servers... ツールを起動するには、メニューバーの Tools をナビゲートして、 Import/Export Servers オプションをクリックします。
Import/Export フィールドを使用して、インポートまたはエクスポートするサーバーグループ/サーバーを選択します。
Use the Filename field to select the JSON file to import servers or create the new file in case of Export where the servers to be exported in the JSON format.
Remove all the stable servers? フィールドを使用して、新しく選択したサーバーをインポートする前に既存のサーバーをすべて削除するかどうかを指定します。このフィールドは、インポートサーバーの場合にのみ適用されます。
Click the Next button to continue, or the X button to close the wizard.
インポート/エクスポートするサーバーグループ/サーバーを選択します。
Click the Next button to continue, or the X button to close the wizard.
[概要]ページで、インポート/エクスポートされるサーバーの概要を確認します。
Click the Finish button to close the wizard.
'setup.py'コマンドラインスクリプトを使用する#
注釈
setup.py スクリプトを使用してサーバーをエクスポートまたはインポートするには、通常pgAdminの実行に使用されるPythonインタープリターを使用して、必要なPythonパッケージが利用できることを確認する必要があります。ほとんどのパッケージでは、これはインストールディレクトリにあるPython仮想環境にあります。プラットフォームネイティブパッケージを使用する場合、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 and auth source (the default is Internal):
/path/to/python /path/to/setup.py dump-servers output_file.json --user user@example.com --auth_source ldap
# 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
特定のサーバーのみをエクスポートするには、 --server オプションを使用し、1つ以上のサーバーIDをリストします。例
/path/to/python /path/to/setup.py dump-servers output_file.json --server 1 --server 2 --server 5
サーバーのインポート#
JSONファイルで定義されたサーバーをインポートするには、 load-servers コマンドラインオプション、その後にサーバー定義を含むJSONファイルの名前および必要に応じてパスを指定して setup.py を呼び出すだけです。サーバーは、デスクトップモードユーザーデフォルトで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 and auth source (the default is Internal) 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ファイル形式は非常に簡単で、多くの属性を含むサーバーのリストが含まれるだけです。すべてのサーバー定義に次の属性が存在する必要があります。名前、グループ、ポート、ユーザー名、SSLモード、メンテナンスDB、およびホスト、ホストアドレス、またはサービスのいずれか。
パスワードフィールドはインポートまたはエクスポートできません。
次の例は、最小限に定義されたサーバーと完全に定義されたサーバーの両方を示しています。
{
"Servers": {
"1": {
"Name": "Minimally Defined Server",
"Group": "Server Group 1",
"Port": 5432,
"Username": "postgres",
"Host": "localhost",
"MaintenanceDB": "postgres",
"ConnectionParameters": {
"sslmode": "prefer",
"connect_timeout": 10
}
},
"2": {
"Name": "Fully Defined Server",
"Group": "Server Group 2",
"Host": "host.domain.com",
"Port": 5432,
"MaintenanceDB": "postgres",
"Username": "postgres",
"Role": "my_role_name",
"Comment": "This server has every option configured in the JSON",
"DBRestriction": "live_db test_db",
"Shared": false,
"SharedUsername": "postgres",
"BGColor": "#ff9900",
"FGColor": "#000000",
"Service": "postgresql-10",
"UseSSHTunnel": 1,
"TunnelHost": "192.168.1.253",
"TunnelPort": 22,
"TunnelUsername": "username",
"TunnelAuthentication": 1,
"TunnelIdentityFile": "/Users/<user>/.ssh/id_rsa.pub",
"TunnelKeepAlive": 30,
"PasswordExecCommand": "echo 'test'",
"PasswordExecExpiration": 100,
"KerberosAuthentication": true,
"ConnectionParameters": {
"sslmode": "prefer",
"connect_timeout": 10,
"passfile": "/Users/<user>/.pgpass",
"sslcert": "/Users/<user>/.ssh/cert"
},
"Tags": [
{
"color": "#EC0BB4",
"text": "Development"
}
],
"PostConnectionSQL": "set timezone='America/New_York'"
}
}
}
注釈
サーバーモードでpgAdminを実行している場合、ファイルパスを必要とするパラメーターの値は、ユーザーのホームディレクトリである/<DATA_DIR>/storage/<user_id>/を基準にして指定する必要があります。 DATA_DIRが指定されない場合、 /var/libe/pgadmin/storage/<user_id>/