Как импортировать список серверов из pgAdmin 3 в pgAdmin 4?

Интересно, есть ли способ импортировать список серверов из pgAdmin 3 в pgAdmin 4 (так что мне не нужно создавать серверы один за другим).

11 голосов | спросил Franck Dernoncourt 8 J000000Friday16 2016, 18:26:10

2 ответа


4

Для Windows в C: \ Users \% user% \ AppData \ Roaming \ pgAdmin вы можете найти pgadmin4.db, где pgAdmin4 сохраняет свою конфигурацию. Это формат SQLite 3 и с помощью браузера SQLite вы можете открыть его и вставить серверы в таблицу серверов, а затем сохранить и добавить в pgAdmin4. Обратите внимание, что пароли сохраняются зашифрованными, поэтому оставляйте NULL для их ввода позже. Теперь вы можете сделать sql-скрипт, который читает экспорт реестра из pgAdmin III и вставляет в таблицу полностью автоматизированный процесс.

ответил laki 5 +03002016-10-05T18:07:11+03:00312016bEurope/MoscowWed, 05 Oct 2016 18:07:11 +0300 2016, 18:07:11
1

Под 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 ....

ответил dezso 19 Jam1000000amFri, 19 Jan 2018 00:59:37 +030018 2018, 00:59:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132