Pgadmin
如何將我的伺服器列表從 pgAdmin 3 導入到 pgAdmin 4?
我想知道是否有任何方法可以將我的伺服器列表從 pgAdmin 3 導入到 pgAdmin 4(這樣我就不必再一個一個地創建伺服器)。
對於 C:\Users%user%\AppData\Roaming\pgAdmin 中的 Windows,您可以找到 pgadmin4.db,這是 pgAdmin4 保存其配置的位置。它是 SQLite 格式 3,您可以使用 SQLite 瀏覽器打開它並將伺服器插入伺服器表,然後保存並將它們添加到 pgAdmin4。請注意,密碼是加密保存的,因此請留空以便稍後輸入。現在您可以製作 sql 腳本,從 pgAdmin III 讀取系統資料庫導出並插入到表中以實現完全自動化的過程。
在 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) );
您必須首先創建伺服器組,最好從 UI 完成,因為它會告訴您
user_id
使用INSERT INTO server ...
.