Come posso importare il mio elenco di server da pgAdmin 3 a pgAdmin 4?


12

Mi chiedo se esiste un modo per importare il mio elenco di server da pgAdmin 3 a pgAdmin 4 (in modo da non dover creare nuovamente i server uno per uno).


4
Peccato che abbiano dimenticato di implementare il percorso di migrazione per importare da pgAdmin 3 a pgAdmin 4.
Sungam

1
Grazie per la pubblicazione. Che ne dici di OSX?
catena

Risposte:


4

Per Windows in C: \ Users \% user% \ AppData \ Roaming \ pgAdmin puoi trovare pgadmin4.db che è dove pgAdmin4 salva la sua configurazione. È il formato SQLite 3 e con il browser SQLite è possibile aprirlo e inserire i server nella tabella dei server, quindi salvare e vengono aggiunti a pgAdmin4. Si noti che le password vengono salvate crittografate, quindi lasciare NULL per immetterle in un secondo momento. Ora puoi creare uno script sql che legge l'esportazione del registro da pgAdmin III e si inserisce nella tabella per un processo completamente automatizzato.


pgAdmin non ha la funzione di connessioni al server di esportazione / importazione ...
Stephan,

1

Sotto Linux (Ubuntu 16.04, nel mio caso, ma deve essere presente anche su altri sistemi), troverai un .pgadmin3file nella tua home directory. In questo file di configurazione ci sono voci come

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

La parte "Server" sopra riportata fa riferimento a un gruppo di server, che è importante notare.

Con un po 'di diligenza, puoi estrarre i dati necessari da questo in un formato adatto (può essere anche un mucchio di INSERTaffermazioni, vedi sotto).

Sotto la tua home directory troverai un pgadmin4.dbfile (la posizione esatta potrebbe dipendere da come hai installato pgAdmin4). Questo è un database SQLIte 3 (come descritto anche nell'altra risposta ) e contiene una servertabella:

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

Devi prima creare il / i gruppo / i di server, che è meglio fare dall'interfaccia utente, poiché ti dirà user_idche è necessario per creare un server usando INSERT INTO server ....

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.