Jak mogę zaimportować listę serwerów z pgAdmin 3 do pgAdmin 4?

12

Zastanawiam się, czy istnieje jakiś sposób na zaimportowanie mojej listy serwerów z pgAdmin 3 na pgAdmin 4 (aby nie musiałem ponownie tworzyć serwerów jeden po drugim).

Franck Dernoncourt
źródło
4
Szkoda, że ​​zapomnieli wdrożyć ścieżkę migracji, aby zaimportować pgAdmin 3 do pgAdmin 4.
Sungam
1
Dzięki za wysłanie. Co powiesz na OSX?
sieć

Odpowiedzi:

4

W systemie Windows w C: \ Users \% user% \ AppData \ Roaming \ pgAdmin można znaleźć pgadmin4.db, w którym pgAdmin4 zapisuje swoją konfigurację. Jest to format 3 SQLite i za pomocą przeglądarki SQLite możesz go otworzyć i wstawić serwery do tabeli serwerów, a następnie zapisać i dodać je do pgAdmin4. Pamiętaj, że hasła są zapisywane w postaci zaszyfrowanej, więc pozostaw NULL, aby wprowadzić je później. Teraz możesz stworzyć skrypt SQL, który odczytuje eksport rejestru z pgAdmin III i wstawia do tabeli w celu w pełni zautomatyzowanego procesu.

laki
źródło
pgAdmin nie ma funkcji połączeń z serwerem eksportu / importu ...
Stephan
1

Pod Linuksem (Ubuntu 16.04, w moim przypadku, ale musi być także w innych systemach), znajdziesz .pgadmin3plik w swoim katalogu domowym. W tym pliku konfiguracyjnym znajdują się wpisy takie jak

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

Część „Serwery” powyżej odnosi się do grupy serwerów, na którą należy zwrócić uwagę.

Z pewną starannością możesz wydobyć z tego niezbędne dane w odpowiednim formacie (może to być nawet kilka INSERTinstrukcji, patrz poniżej).

W swoim katalogu domowym znajdziesz pgadmin4.dbplik (dokładna lokalizacja może zależeć od sposobu instalacji pgAdmin4). To jest baza danych SQLIte 3 (jak również opisano w innej odpowiedzi ) i zawiera servertabelę:

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

Najpierw musisz utworzyć grupę (grupy) serwerów, co lepiej zrobić z interfejsu użytkownika, ponieważ poinformuje Cię user_id, że musisz utworzyć serwer przy użyciu INSERT INTO server ....

dezso
źródło