PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Pulihkan db PostgreSQL dari cadangan tanpa masalah batasan kunci asing

Sepertinya Anda mendapatkan dump SQL daripada dump biner dari pg_dump . Itu akan memberi Anda tumpukan besar SQL dengan skema (termasuk FK) di bagian atas diikuti oleh sekelompok INSERT untuk memuat ulang data. Dump biner dari pg_dump akan melayani Anda dengan lebih baik, sepertinya Anda memerlukan sedikit konfigurasi tambahan untuk memberi tahu PhpPgAdmin di mana pg_dump adalah. Kemudian Anda akan memasukkan dump biner itu ke pg_restore dan pg_restore akan membangun kembali semuanya dalam urutan yang benar untuk menghindari masalah integritas referensial (atau, lebih tepatnya, pg_restore akan mengembalikan semua data kemudian menambahkan batasan).

PhpPgAdmin sepertinya ingin bekerja dengan dump SQL biasa daripada pg_restore . Saya merasa ini sulit dipercaya tetapi saya tidak dapat menemukan apa pun dalam dokumentasi tentang menjalankan pg_restore . Jika ini benar, maka Anda mungkin harus mengedit SQL dump dengan tangan dan memindahkan semua FK sampai akhir.

Anda juga dapat mencoba menambahkan SET CONSTRAINTS ALL DEFERRED; di bagian atas dump SQL Anda, yang akan menunda pemeriksaan batasan hingga akhir transaksi, Anda juga ingin memastikan bahwa seluruh blok INSERT terkandung dalam suatu transaksi.

Jika PhpPgAdmin benar-benar tidak dapat memanggil pg_restore maka Anda lebih baik menggunakan menggunakan pg_dump dan pg_restore dengan tangan sehingga Anda memiliki kontrol yang diperlukan atas prosedur pencadangan Anda. Maaf, tetapi alat admin basis data apa pun yang tidak dapat menangani pencadangan basis data dengan FK lebih buruk daripada tidak berguna. Mudah-mudahan seseorang yang tahu tentang PhpPgAdmin akan muncul dan memberi tahu kami cara menggunakan pg_restore dengan PhpPgAdmin.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mencatat Kueri di PostgreSQL

  2. SALIN hanya beberapa kolom dari masukan CSV?

  3. PostgreSQL GROUP_CONCAT() Setara

  4. Mengalikan dua kolom yang telah dihitung pada pernyataan CASE

  5. Kesalahan Heroku:ActionView::Template::Error (metode `captcha' tidak ditentukan untuk #<Message:0x007fc9df016930>)