Як я можу імпортувати свій список серверів з pgAdmin 3 на pgAdmin 4?


12

Цікаво, чи є спосіб імпортувати мій список серверів з pgAdmin 3 на pgAdmin 4 (так що мені більше не потрібно створювати сервери один за одним).


4
Це погано, що вони забули застосувати шлях міграції до імпорту pgAdmin 3 на pgAdmin 4.
Sungam

1
Дякуємо за публікацію Як щодо OSX?
ланцюжок

Відповіді:


4

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


pgAdmin відсутня функція підключення до сервера експорту / імпорту ...
Stephan

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 ....

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.