Komputer saya rusak tetapi untungnya saya membuat cadangan folder C: \ Program Files \ PostgreSQL.
Sekarang saya bekerja di komputer baru dan saya ingin mengimpor database Postgres sebelumnya yang disimpan di disk eksternal.
Saya ingin mengekspor skema database tertentu yang terletak di folder cadangan.
File tersebut PostgreSQL\8.3\data\global\pg_database
berisi informasi tentang database dan OID-nya; sebagai contoh:
"db1" 20012
"db2" 23456
Saya ingin mengekspor skema "db1".
Ada folder bernama "20012" di folder "PostgreSQL\8.3\data\base\20012"
yang berisi banyak file [500 file].
Apakah ada cara untuk mengekspor skema database itu?
Perhatikan bahwa semua file database Postgresql terletak di hard disk eksternal dan saya ingin mengekspor skema database itu dalam file SQL, mengambil file itu, menjalankannya, dan membuat database yang sama persis secara lokal.
sumber
pg_dump -s databasename > schema.sql
akan menampilkan hasilnya ke dalamschema.sql
fileDi Linux Anda bisa melakukan seperti ini
Mungkin bisa juga bekerja di Windows , jika tidak coba sama dengan pg_dump.exe
sumber
Saya menjalankan Postgres 9.6 di mana saya harus mengekspor skema tertentu bersama dengan data.
Saya menggunakan perintah berikut:
Jika Anda hanya menginginkan skema tanpa data, gunakan tombol
s
alih-alihn
Di bawah ini adalah daftar sakelar pg_dump:
sumber
Harap perhatikan bahwa Anda mempunyai hak cukup untuk mengakses skema itu. Jika Anda ingin mengambil cadangan sebagai pengguna tertentu, tambahkan nama pengguna dalam perintah yang diawali dengan
-U
sumber
Jika Anda hanya ingin membuat tabel, maka Anda bisa melakukannya
pg_dump -s databasename | awk 'RS="";/CREATE TABLE[^;]*;/'
sumber
Untuk Linux: (data tidak termasuk)
pg_dump -s -t tablename databasename > dump.sql
(Untuk tabel tertentu dalam database)pg_dump -s databasename > dump.sql
(Untuk seluruh database)sumber
atur server postgresql baru dan ganti folder datanya dengan file dari disk eksternal Anda.
Anda kemudian akan dapat memulai server postgresql itu dan mengambil data menggunakan pg_dump (pg_dump -s untuk skema-saja seperti yang disebutkan)
sumber
Anda harus menggunakan sesuatu seperti ini
pg_dump --schema=your_schema_name db1
, untuk detailnya lihat di sinisumber