Wie kann ich meine Serverliste von pgAdmin 3 nach pgAdmin 4 importieren?

12

Ich frage mich, ob es eine Möglichkeit gibt, meine Serverliste von pgAdmin 3 nach pgAdmin 4 zu importieren (damit ich keine Server mehr einzeln erstellen muss).

Franck Dernoncourt
quelle
4
Das ist schlecht sie Migrationspfad zu importieren pgAdmin 3 bis pgAdmin 4. umzusetzen vergessen
Sungam
1
Danke fürs Schreiben. Wie wäre es mit OSX?
Kettenarbeit

Antworten:

4

Unter Windows finden Sie unter C: \ Benutzer \% Benutzer% \ AppData \ Roaming \ pgAdmin die Datei pgadmin4.db, in der pgAdmin4 die Konfiguration speichert. Es ist das SQLite-Format 3 und mit dem SQLite-Browser können Sie es öffnen und Server in die Servertabelle einfügen und dann speichern und sie zu pgAdmin4 hinzufügen. Beachten Sie, dass Kennwörter verschlüsselt gespeichert werden. Lassen Sie NULL, um sie später einzugeben. Jetzt können Sie ein SQL-Skript erstellen, das den Registrierungsexport aus pgAdmin III liest und für einen vollautomatisierten Prozess in die Tabelle einfügt.

laki
quelle
pgAdmin fehlt die Funktion zum Exportieren / Importieren von Serververbindungen ...
Stephan
1

Unter Linux (in meinem Fall Ubuntu 16.04, muss es aber auch auf anderen Systemen vorhanden sein) finden Sie eine .pgadmin3Datei in Ihrem Home-Verzeichnis. In dieser Konfigurationsdatei gibt es Einträge wie

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

Der obige Abschnitt "Server" bezieht sich auf eine Servergruppe, die unbedingt beachtet werden muss.

Mit einiger Sorgfalt können Sie die erforderlichen Daten in einem geeigneten Format daraus extrahieren (es kann sich sogar um eine Reihe von INSERTAussagen handeln, siehe unten).

Unter Ihrem Home-Verzeichnis finden Sie eine pgadmin4.dbDatei (der genaue Speicherort hängt möglicherweise davon ab, wie Sie pgAdmin4 installiert haben). Dies ist eine SQLIte 3-Datenbank (wie auch in der anderen Antwort beschrieben ) und enthält eine serverTabelle:

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

Sie müssen zuerst die Servergruppe (n) erstellen. Dies geschieht am besten über die Benutzeroberfläche, da Ihnen mitgeteilt wird, welche Servergruppen user_idSie zum Erstellen eines Servers benötigen INSERT INTO server ....

dezso
quelle