Kami mengganti host dan yang lama menyediakan SQL dump dari database PostgreSQL di situs kami.
Sekarang, saya mencoba untuk mengatur ini pada server WAMP lokal untuk menguji ini.
Satu-satunya masalah adalah saya tidak punya ide cara mengimpor database ini di PostgreSQL 9 yang telah saya atur.
Saya mencoba pgAdmin III tetapi sepertinya saya tidak dapat menemukan fungsi 'impor'. Jadi saya baru saja membuka editor SQL dan menempelkan isi dump di sana dan mengeksekusinya, itu menciptakan tabel tetapi itu terus memberi saya kesalahan ketika mencoba untuk memasukkan 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 ...
Saya juga mencoba melakukan ini dengan command prompt tetapi saya tidak dapat menemukan perintah yang saya butuhkan.
Jika aku melakukan
psql mydatabase < C:/database/db-backup.sql;
Saya mendapatkan kesalahan
ERROR: syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
^
Apa cara terbaik untuk mengimpor basis data?
sumber
ERROR: syntax error at or near "t"
. Ternyata saya hanya mengimpor skema parsial dan dengan demikianCREATE TABLE
pernyataan sebelumnya dalam skrip telah gagal. Lihat melalui hasil lengkap impor untuk menemukannya.Jawaban:
Itu perintah yang Anda cari.
Hati-hati:
databasename
harus dibuat sebelum mengimpor. Lihat PostgreSQL Documents Bab 23. Cadangkan dan Kembalikan .sumber
-f
switch (atau--file
) jugaIni adalah perintah yang Anda cari.
sumber
pg_restore -h hostname -d dbname -U username filename.sql
Saya percaya bahwa Anda ingin menjalankan dalam psql:
sumber
Itu berhasil bagi saya:
sumber
Saya tidak yakin apakah ini berfungsi untuk situasi OP, tetapi saya menemukan bahwa menjalankan perintah berikut di konsol interaktif adalah solusi paling fleksibel bagi saya:
Pastikan Anda sudah terhubung ke database yang benar. Perintah ini mengeksekusi semua perintah SQL dalam file yang ditentukan.
sumber
psql
baris perintah. Terima kasih!Bekerja cukup baik, di baris perintah, semua argumen diperlukan, -W adalah untuk kata sandi
sumber
Hanya untuk bersenang-senang, jika dump Anda dikompresi, Anda dapat melakukan sesuatu seperti
gunzip -c filename.gz | psql dbname
Seperti yang disebutkan Jacob, dokumen PostgreSQL menggambarkan semua ini dengan cukup baik.
sumber
Saya menggunakan:
Semoga ini bisa membantu seseorang.
sumber
Anda bisa melakukannya di pgadmin3. Jatuhkan skema yang berisi tempat pembuangan Anda. Kemudian klik kanan pada database dan pilih Pulihkan. Kemudian Anda dapat mencari file dump.
sumber
Saya perhatikan bahwa banyak contoh yang terlalu rumit untuk localhost di mana hanya pengguna postgres tanpa kata sandi dalam banyak kasus:
sumber
pastikan database yang ingin Anda impor dibuat, lalu Anda dapat mengimpor dump
Jika Anda ingin menimpa seluruh basis data, letakkan dulu basis data
dan kemudian membuatnya kembali dengan
sumber
Saya mencoba berbagai solusi untuk memulihkan cadangan postgres saya. Saya menemukan izin yang ditolak masalah pada MacOS, sepertinya tidak ada solusi yang berhasil.
Begini cara saya membuatnya bekerja:
Postgres hadir dengan Pgadmin4. Jika Anda menggunakan macOS Anda dapat menekan
CMD
+SPACE
dan mengetikpgadmin4
untuk menjalankannya. Ini akan membuka tab browser di chrome.Langkah-langkah untuk mendapatkan pgadmin4 + backup / restore
1. Buat cadangan
Lakukan ini dengan mengklik kanan basis data -> "cadangan"
2. Beri nama file.
Seperti
test12345
. Klik cadangan. Ini menciptakan dump file biner, tidak dalam.sql
format3. Lihat di mana itu diunduh
Seharusnya ada sembulan di kanan bawah layar Anda. Klik halaman "selengkapnya" untuk melihat ke mana cadangan unduhan Anda
4. Temukan lokasi file yang diunduh
Dalam hal ini, itu
/users/vincenttang
5. Kembalikan cadangan dari pgadmin
Dengan asumsi Anda melakukan langkah 1 hingga 4 dengan benar, Anda akan memiliki file biner yang dipulihkan. Mungkin suatu saat rekan kerja Anda ingin menggunakan file pemulihan di mesin lokal mereka. Telah mengatakan orang pergi ke pgadmin dan memulihkan
Lakukan ini dengan mengklik kanan basis data -> "restore"
6. Pilih pencari file
Pastikan untuk memilih lokasi file secara manual, JANGAN seret dan jatuhkan file ke bidang pengunggah di pgadmin. Karena Anda akan mengalami izin kesalahan. Alih-alih, cari file yang baru saja Anda buat:
7. Temukan file tersebut
Anda mungkin harus mengubah filter di kanan bawah ke "Semua file". Temukan file setelahnya, dari langkah 4. Sekarang tekan tombol "Pilih" kanan untuk mengonfirmasi
8. Kembalikan file tersebut
Anda akan melihat halaman ini lagi, dengan lokasi file dipilih. Silakan dan kembalikan
9. Sukses
Jika semuanya baik, kanan bawah akan memunculkan indikator yang menunjukkan pengembalian yang berhasil. Anda dapat menavigasi ke tabel Anda untuk melihat apakah data telah dipulihkan layak pada setiap tabel.
10. Jika tidak berhasil:
Jika langkah 9 gagal, coba hapus skema publik lama Anda di database Anda. Pergi ke "Alat Kueri"
Jalankan blok kode ini:
Sekarang coba langkah 5 hingga 9 lagi, itu akan berhasil
Ringkasan
Ini adalah bagaimana saya harus membuat cadangan / memulihkan cadangan saya di Postgres, ketika saya memiliki masalah izin kesalahan dan tidak bisa masuk sebagai pengguna super. Atau atur kredensial untuk baca / tulis menggunakan
chmod
folder. Alur kerja ini berfungsi untuk dump standar file biner "Custom" dari pgadmin. Saya berasumsi.sql
dengan cara yang sama, tetapi saya belum mengujinyasumber