サーバーリストをpgAdmin 3からpgAdmin 4にインポートする方法があるのだろうか(サーバーを1つずつ作成する必要がないように)。
サーバーリストをpgAdmin 3からpgAdmin 4にインポートする方法があるのだろうか(サーバーを1つずつ作成する必要がないように)。
回答:
WindowsのC:\ Users \%user%\ AppData \ Roaming \ pgAdminには、pgAdmin4がその構成を保存するpgadmin4.dbがあります。これはSQLite形式3であり、SQLiteブラウザを使用して開き、サーバーをサーバーテーブルに挿入して保存し、pgAdmin4に追加できます。パスワードは暗号化されて保存されるため、後で入力するにはNULLのままにしてください。これで、pgAdmin IIIからレジストリエクスポートを読み取り、完全に自動化されたプロセスのためにテーブルに挿入するSQLスクリプトを作成できます。
Linux(私の場合はUbuntu 16.04ですが、他のシステムにも存在する必要があります)では.pgadmin3
、ホームディレクトリにファイルがあります。この設定ファイルには次のようなエントリがあります
[Servers/1]
Server=dezso.com
HostAddr=
Description=random
Service=
ServiceID=
DiscoveryID=
Port=5432
StorePwd=false
Rolename=
Restore=true
Database=postgres
Username=dezso
...
上記の「サーバー」の部分はサーバーグループを指します。これは注意することが重要です。
ある程度の注意を払えば、これから必要なデータを適切な形式で抽出することができます(大量のINSERT
ステートメントでさえあります。以下を参照)。
ホームディレクトリの下にpgadmin4.db
ファイルがあります(正確な場所は、pgAdmin4のインストール方法によって異なります)。これはSQLIte 3データベースであり(他の回答でも説明されています)、その中にserver
テーブルがあります:
sqlite> .schema server
CREATE TABLE server (
id INTEGER NOT NULL,
user_id INTEGER NOT NULL,
servergroup_id INTEGER NOT NULL,
name VARCHAR(128) NOT NULL,
host VARCHAR(128) NOT NULL,
port INTEGER NOT NULL CHECK (port >= 1024 AND port <= 65535),
maintenance_db VARCHAR(64) NOT NULL,
username VARCHAR(64) NOT NULL,
ssl_mode VARCHAR(16) NOT NULL CHECK (
ssl_mode IN (
'allow', 'prefer', 'require', 'disable', 'verify-ca', 'verify-full'
)),
comment VARCHAR(1024), password TEXT(64), role text(64), discovery_id TEXT, hostaddr TEXT(1024), db_res TEXT, passfile TEXT, sslcert TEXT, sslkey TEXT, sslrootcert TEXT, sslcrl TEXT, sslcompression INTEGER default 0, bgcolor TEXT(10), fgcolor TEXT(10),
PRIMARY KEY (id),
FOREIGN KEY(user_id) REFERENCES user (id),
FOREIGN KEY(servergroup_id) REFERENCES servergroup (id)
);
最初にサーバーグループuser_id
を作成する必要がありますINSERT INTO server ...
。これは、UIから行う方が適切です。