Import/Export Servers

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

pgAdmin4GUIの使用

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

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

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

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

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

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

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

Import/ExportServersステップ3ページ

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

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 コマンドラインオプションで setup.py を呼び出し、その後にサーバー定義を含む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,
            "PasswordExecCommand": "echo 'test'",
            "PasswordExecExpiration": 100
        }
    }
}