Bagaimana cara mengimpor daftar server saya dari pgAdmin 3 ke pgAdmin 4?

12

Saya bertanya-tanya apakah ada cara untuk mengimpor daftar server saya dari pgAdmin 3 ke pgAdmin 4 (sehingga saya tidak perlu membuat server satu per satu lagi).

Franck Dernoncourt
sumber
4
Itu buruk mereka lupa menerapkan jalur migrasi untuk mengimpor pgAdmin 3 ke pgAdmin 4.
Sungam
1
Terima kasih sudah memposting. Bagaimana dengan OSX?
rantai kerja

Jawaban:

4

Untuk Windows di C: \ Users \% user% \ AppData \ Roaming \ pgAdmin Anda dapat menemukan pgadmin4.db yang merupakan tempat pgAdmin4 menyimpan konfigurasinya. Ini adalah format SQLite 3 dan dengan browser SQLite Anda dapat membukanya dan memasukkan server ke dalam tabel server dan kemudian menyimpan dan mereka ditambahkan ke pgAdmin4. Perhatikan bahwa kata sandi disimpan terenkripsi jadi biarkan NULL untuk memasangnya nanti. Sekarang Anda dapat membuat skrip sql yang membaca ekspor registri dari pgAdmin III dan menyisipkan ke dalam tabel untuk proses yang sepenuhnya otomatis.

laki-laki
sumber
pgAdmin tidak memiliki fitur koneksi server ekspor / impor ...
Stephan
1

Di linux (Ubuntu 16.04, dalam kasus saya, tetapi harus ada di sistem lain juga), Anda akan menemukan .pgadmin3file di direktori home Anda. Dalam file konfigurasi ini ada entri seperti

[Servers/1]
Server=dezso.com
HostAddr=
Description=random
Service=
ServiceID=
DiscoveryID=
Port=5432
StorePwd=false
Rolename=
Restore=true
Database=postgres
Username=dezso
...

Bagian 'Server' di atas merujuk ke grup server, yang penting untuk diperhatikan.

Dengan sedikit ketekunan, Anda dapat mengekstrak data yang diperlukan dari ini dalam format yang sesuai (bisa berupa sekelompok INSERTpernyataan, lihat di bawah).

Di bawah direktori home Anda, Anda akan menemukan pgadmin4.dbfile (lokasi yang tepat mungkin tergantung pada bagaimana Anda menginstal pgAdmin4). Ini adalah database SQLIte 3 (seperti juga dijelaskan dalam jawaban lain ), dan ada servertabel di dalamnya:

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)
    );

Anda harus membuat grup server terlebih dahulu, yang lebih baik dilakukan dari UI, karena akan memberi tahu Anda apa user_idyang Anda butuhkan untuk membuat server menggunakan INSERT INTO server ....

dezso
sumber