如何将服务器列表从pgAdmin 3导入到pgAdmin 4?


12

我想知道是否有任何方法可以将我的服务器列表从pgAdmin 3导入到pgAdmin 4(这样我就不必一次又一次地创建服务器)。


4
这是很糟糕,他们忘了落实的pgAdmin 4.迁移路径进口pgAdmin的3
Sungam

1
感谢您的发布。OSX呢?
链条工作'18

Answers:


4

对于Windows,在C:\ Users \%user%\ AppData \ Roaming \ pgAdmin中,您可以找到pgadmin4.db,这是pgAdmin4保存其配置的位置。它是SQLite格式3,可以使用SQLite浏览器打开它,并将服务器插入服务器表,然后保存,然后将它们添加到pgAdmin4。请注意,密码以加密方式保存,因此保留NULL以便以后输入。现在,您可以使sql脚本从pgAdmin III读取注册表导出,并插入到表中以进行全自动处理。


pgAdmin缺少导出/导入服务器连接功能...
Stephan

1

在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 ...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.