Интересно, есть ли способ импортировать мой список серверов из pgAdmin 3 в pgAdmin 4 (чтобы мне больше не приходилось создавать серверы один за другим).
Интересно, есть ли способ импортировать мой список серверов из pgAdmin 3 в pgAdmin 4 (чтобы мне больше не приходилось создавать серверы один за другим).
Ответы:
Для Windows в C: \ Users \% user% \ AppData \ Roaming \ pgAdmin вы можете найти pgadmin4.db, где pgAdmin4 сохраняет свою конфигурацию. Это формат SQLite 3, и с помощью браузера 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 ...
.