Saya mencoba untuk membuang beberapa tabel dari server 9,5 beta 2 ke server 9,4.4. Bentuk perintah yang saya gunakan adalah standar yang cukup:
pg_dump -t table dbname | psql -h hostname -d dbname
Saya menggunakan pengguna Postgres, yang saya sadari mungkin tidak ideal, tetapi karena keduanya adalah kotak pengolah data dev yang hanya saya gunakan dan relevan dengan kesalahan berikut. Awalnya, saya mendapat kesalahan
GALAT: parameter konfigurasi yang tidak dikenal "row_security"
yang diharapkan karena fitur ini baru dalam 9,5, dan, ya, saya menyadari bahwa tidak disarankan untuk pg_dump antara berbagai versi Postgres, tetapi, sayangnya tidak dapat dihindari, mengingat bahwa saya telah menabrak bug yang sangat tidak jelas, dan perlu untuk memindahkan yang besar jumlah data statis sekali.
Jadi, menggunakan hack mengerikan ini untuk menghapus kesalahan row_security, dan menyalakan stop pada kesalahan pertama:
pg_dump -t tablemame dbname |sed 's/SET row_security = off;//'|
psql -v ON_ERROR_STOP=1 -h hostname -d dbname
Saya sekarang mendapatkan:
GALAT: izin ditolak untuk membuat "pg_catalog.tablename" DETAIL: Modifikasi katalog sistem saat ini tidak diizinkan
Meskipun mungkin tidak diinginkan untuk menggunakan pengguna / peran Postgres, pemahaman saya adalah bahwa seharusnya tidak ada masalah izin seperti ini. Saya terbuka untuk setiap saran dengan mengingat bahwa ini adalah operasi satu kali dan ini adalah kotak pengolah data yang tidak terhubung ke layanan langsung, jadi kebijaksanaan lebih disukai daripada kebijakan akses data perusahaan yang ideal. Karena itu, akan baik untuk memahami bagaimana melakukan ini dengan benar dan menghindari ini di masa depan.