Import/Export Servers

サーバー定義およびそのグループはJSONファイルにエクスポートし、同じまたは別のシステムに再インポートできるため、pgAdminの事前構成を簡単にできます。

pgAdmin4GUIを使用する

Import/ExportServers... ツールを起動するには、メニューバーの Tools をナビゲートして、 Import/ExportServers オプションをクリックします。

インポート/エクスポートサーバーのステップ1ページ
  • Import/Export フィールドを使用して、インポートまたはエクスポートするサーバーグループ/サーバーを選択します。

  • Filename フィールドを使用して、サーバーをインポートするJSONファイルを選択するか、サーバーをJSON形式でエクスポートするエクスポートの場合、新しいファイルを作成します。

  • Removeallthestableservers? フィールドを使用して、新しく選択したサーバーをインポートする前に既存のサーバーをすべて削除するかどうかを指定します。このフィールドは、インポートサーバーの場合にのみ適用されます。

Next ボタンをクリックして続行するか、 X ボタンをクリックしてウィザードを閉じます。

インポート/エクスポートサーバーのステップ2ページ
  • インポート/エクスポートするサーバーグループ/サーバーを選択します。

Next ボタンをクリックして続行するか、 X ボタンをクリックしてウィザードを閉じます。

インポート/エクスポートサーバーステップ3ページ

[概要]ページで、インポート/エクスポートされるサーバーの概要を確認します。

Finish ボタンをクリックして、ウィザードを閉じます。

'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",
            "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,
            "SharedUsername": "postgres",
            "BGColor": "#ff9900",
            "FGColor": "#000000",
            "Service": "postgresql-10",
            "Timeout": 60,
            "UseSSHTunnel": 1,
            "TunnelHost": "192.168.1.253",
            "TunnelPort": 22,
            "TunnelUsername": "username",
            "TunnelAuthentication": 0,
            "PasswordExecCommand": "echo 'test'",
            "PasswordExecExpiration": 100
        }
    }
}