Import SQL dump ke database PostgreSQL

Kita beralih host dan lama disediakan SQL dump dari database PostgreSQL dari situs kami.

Sekarang, aku'm mencoba untuk mengatur hal ini pada lokal WAMP server untuk tes ini.

Satu-satunya masalah adalah bahwa saya don't memiliki ide bagaimana untuk mengimpor database di PostgreSQL 9 yang telah ditetapkan.

Saya mencoba pgAdmin III tapi aku bisa't tampaknya menemukan 'import' fungsi. Jadi saya hanya membuka SQL editor dan disisipkan isi dump ada dan dilaksanakan, itu menciptakan tabel tetapi terus memberi saya kesalahan ketika mencoba untuk menempatkan data di dalamnya.

ERROR:  syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...

The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t   2011-05-24 16:45:01.768633  2011-05-24 16:45:01.768633  view    nl ...  

I've juga mencoba untuk melakukan hal ini dengan command prompt tapi aku bisa't menemukan perintah yang saya butuhkan.

Jika saya lakukan

psql mydatabase < C:/database/db-backup.sql;

Saya mendapatkan error

ERROR:  syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
        ^

Apa's cara terbaik untuk import database?

Mengomentari pertanyaan (1)
Larutan
psql databasename < data_base_dump

Yang's perintah yang anda cari.

Hati-hati: databasename harus diciptakan sebelum mengimpor. Silahkan lihat di PostgreSQL Dokumen Bab 23. Backup dan Restore.

Komentar (15)

Berikut adalah perintah yang anda cari.

psql -h hostname -d databasename -U username -f file.sql
Komentar (3)

Saya percaya bahwa anda ingin berjalan di psql:

\i C:/database/db-backup.sql
Komentar (4)

Yang bekerja untuk saya:

sudo -u postgres psql db_name < 'file_path'
Komentar (1)

I'm tidak yakin jika ini bekerja untuk OP's situasi, tapi saya menemukan bahwa menjalankan perintah berikut di konsol interaktif adalah solusi yang paling fleksibel untuk saya:

\i 'path/to/file.sql'

Hanya pastikan anda're sudah terhubung ke database yang benar. Perintah ini mengeksekusi semua perintah-perintah SQL dalam file tertentu.

Komentar (5)

Bekerja dengan cukup baik, di baris perintah, semua argumen yang diperlukan, -W adalah untuk password

psql -h localhost -U user -W -d database_name -f path/to/file.sql
Komentar (0)

Hanya untuk funsies, jika anda dump dikompresi anda dapat melakukan sesuatu seperti

gunzip -c filename.gz | psql dbname

Sebagai Jacob disebutkan, PostgreSQL docs menggambarkan semua ini dengan cukup baik.

Komentar (0)

Saya gunakan:

cat /home/path/to/dump/file | psql -h localhost -U  -d 

Berharap ini akan membantu seseorang.

Komentar (0)

Anda dapat melakukannya di pgadmin3. Drop schema(s) yang anda dump berisi. Kemudian klik kanan pada database dan pilih Restore. Kemudian anda dapat menelusuri untuk dump file.

Komentar (1)

Saya melihat bahwa banyak contoh yang overcomplicated untuk localhost di mana hanya postgres user tanpa password ada di banyak kasus-kasus:

psql -d db_name -f dump.sql
Komentar (0)

Saya mencoba banyak solusi yang berbeda untuk memulihkan saya postgres cadangan. Aku berlari ke permission denied masalah pada MacOS, tidak ada solusi yang tampaknya bekerja.

Berikut ini's bagaimana saya mendapatkannya untuk bekerja:

Postgres dilengkapi dengan Pgadmin4. Jika anda menggunakan macOS anda dapat menekan CMD+RUANG dan ketik pgadmin4 untuk menjalankannya. Ini akan membuka tab browser di chrome.

Jika anda mengalami kesalahan mendapatkan pgadmin4 untuk bekerja, cobalah killall pgAdmin4 di terminal anda, kemudian coba lagi.


Langkah-langkah untuk mendapatkan pgadmin4 + backup/restore

1. Buat cadangan

Lakukan ini dengan rightclicking database -> "backup"

2. Berikan nama file.

Seperti test12345. Klik backup. Hal ini menciptakan sebuah file biner dump, it's tidak dalam .sql format

3. Lihat di mana-download

Harus ada popup di bottomright dari layar anda. Klik "rincian lebih lanjut" halaman untuk melihat di mana anda backup di-download ke

4. Cari lokasi file yang didownload

Dalam hal ini, it's /pengguna/vincenttang

5. Mengembalikan cadangan dari pgadmin

Dengan asumsi anda lakukan langkah 1 sampai 4 dengan benar, anda'll telah mengembalikan file biner. Mungkin ada datang suatu waktu anda dan rekan kerja yang ingin anda gunakan untuk mengembalikan file pada komputer lokal. Kata orang yang pergi ke pgadmin dan mengembalikan

Lakukan ini dengan rightclicking database -> "kembalikan"

6. Pilih file finder

Pastikan untuk memilih lokasi file secara manual, JANGAN drag dan drop file ke uploader bidang di pgadmin. Karena anda akan mengalami error izin. Sebaliknya, cari file yang baru saja dibuat:

7. Menemukan kata file

Anda mungkin harus mengubah filter di bottomright untuk "Semua file". Menemukan file setelah itu, dari langkah 4. Sekarang tekan bottomright "Pilih" tombol untuk konfirmasi

8. Mengembalikan file yang mengatakan

Anda'll melihat halaman ini, sekali lagi, dengan lokasi dari file yang dipilih. Pergi ke depan dan mengembalikannya

9. Sukses

Jika semua baik, kanan bawah harus popup indikator yang menunjukkan pemulihan sukses. Anda dapat menavigasi ke tabel anda untuk melihat apakah data telah dipulihkan propery di meja masing-masing.

10. Jika itu't sukses:

Seharusnya langkah 9 gagal, mencoba menghapus umum lama schema di database. Pergi ke "Permintaan Alat"

Mengeksekusi blok kode ini:

DROP SKEMA umum CASCADE; MEMBUAT SKEMA umum;

Sekarang coba langkah 5 sampai 9 lagi, harus bekerja keluar

Ringkasan

Ini adalah bagaimana saya harus backup/restore backup saya pada Postgres, ketika aku telah kesalahan masalah izin dan tidak bisa login sebagai superuser. Atau mengatur kredensial untuk membaca/menulis menggunakan chmod untuk folder. Alur kerja ini bekerja untuk file biner dump default "Kustom" dari pgadmin. Saya asumsikan .sql adalah cara yang sama, tapi saya belum diuji yang

Komentar (0)