Цікаво, чи є спосіб імпортувати мій список серверів з pgAdmin 3 на pgAdmin 4 (так що мені більше не потрібно створювати сервери один за одним).
Цікаво, чи є спосіб імпортувати мій список серверів з pgAdmin 3 на pgAdmin 4 (так що мені більше не потрібно створювати сервери один за одним).
Відповіді:
Для Windows в C: \ Users \% user% \ AppData \ Roaming \ pgAdmin ви можете знайти pgadmin4.db, де pgAdmin4 зберігає свою конфігурацію. Це формат 3 SQLite, і за допомогою браузера SQLite ви можете відкрити його та вставити сервери в серверну таблицю, а потім зберегти, і вони додаються до pgAdmin4. Зауважте, що паролі зберігаються зашифрованими, тому залиште NULL, щоб ввести їх пізніше. Тепер ви можете зробити sql-скрипт, який читає експорт реєстру з pgAdmin III та вставляє в таблицю для повністю автоматизованого процесу.
Під linux (у моєму випадку Ubuntu 16.04, але він має бути і в інших системах), ви знайдете .pgadmin3
файл у своєму домашньому каталозі. У цьому конфігураційному файлі є записи типу
[Servers/1]
Server=dezso.com
HostAddr=
Description=random
Service=
ServiceID=
DiscoveryID=
Port=5432
StorePwd=false
Rolename=
Restore=true
Database=postgres
Username=dezso
...
Частина "Сервери" вище стосується групи серверів, що важливо помітити.
З деякою ретельністю ви можете витягти з цього необхідні дані у відповідному форматі (це може бути навіть купа INSERT
тверджень, див. Нижче).
Під домашнім каталогом ви знайдете pgadmin4.db
файл (точне розташування може залежати від того, як ви встановили pgAdmin4). Це база даних SQLIte 3 (як це також описано в іншій відповіді ), і в ній є server
таблиця:
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)
);
Спочатку потрібно створити групи серверів, що краще зробити з інтерфейсу користувача, оскільки він скаже вам, user_id
що вам потрібно для створення сервера за допомогою INSERT INTO server ...
.