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).
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).
Odpowiedzi:
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.
Pod Linuksem (Ubuntu 16.04, w moim przypadku, ale musi być także w innych systemach), znajdziesz .pgadmin3
plik 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 INSERT
instrukcji, patrz poniżej).
W swoim katalogu domowym znajdziesz pgadmin4.db
plik (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 server
tabelę:
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 ...
.