¿Cómo puedo importar mi lista de servidores de pgAdmin 3 a pgAdmin 4?

12

Me pregunto si hay alguna forma de importar mi lista de servidores de pgAdmin 3 a pgAdmin 4 (para que no tenga que crear servidores uno por uno nuevamente).

Franck Dernoncourt
fuente
44
Eso es malo, se olvidaron de implementar la ruta de migración para importar pgAdmin 3 a pgAdmin 4.
Sungam
1
Gracias por publicar. ¿Qué tal para OSX?
cadena el

Respuestas:

4

Para Windows en C: \ Users \% user% \ AppData \ Roaming \ pgAdmin puede encontrar pgadmin4.db, que es donde pgAdmin4 guarda su configuración. Es el formato 3 de SQLite y con el navegador SQLite puede abrirlo e insertar servidores en la tabla de servidores y luego guardarlos y agregarlos a pgAdmin4. Tenga en cuenta que las contraseñas se guardan encriptadas, así que deje NULL para ingresarlas más tarde. Ahora puede crear un script sql que lea la exportación del registro desde pgAdmin III e inserte en la tabla para un proceso totalmente automatizado.

laki
fuente
pgAdmin carece de la función de conexiones de servidor de exportación / importación ...
Stephan
1

En Linux (Ubuntu 16.04, en mi caso, pero también debe estar allí en otros sistemas), encontrará un .pgadmin3archivo en su directorio de inicio. En este archivo de configuración hay entradas como

[Servers/1]
Server=dezso.com
HostAddr=
Description=random
Service=
ServiceID=
DiscoveryID=
Port=5432
StorePwd=false
Rolename=
Restore=true
Database=postgres
Username=dezso
...

La parte 'Servidores' anterior se refiere a un grupo de servidores, que es importante tener en cuenta.

Con un poco de diligencia, puede extraer los datos necesarios de esto en un formato adecuado (puede ser incluso un montón de INSERTdeclaraciones, ver más abajo).

En su directorio de inicio encontrará un pgadmin4.dbarchivo (la ubicación exacta puede depender de cómo instaló pgAdmin4). Esta es una base de datos SQLIte 3 (como también se describe en la otra respuesta ), y hay una servertabla en ella:

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)
    );

Primero debe crear los grupos de servidores, eso se hace mejor desde la interfaz de usuario, ya que le indicará lo user_idque necesita para crear un servidor utilizando INSERT INTO server ....

dezso
fuente