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

Bagaimana cara membuang data objek besar dari Postgres 9.4, dan kemudian mengimpornya ke Postgres8.x?

Masalahnya adalah dump menggunakan fungsi pg_catalog.lowrite(integer, bytea) untuk membuat objek besar, dan sintaks default bagaimana bytea literal yang direpresentasikan dalam PostgreSQL telah diubah dengan versi 9.0.

Ada parameter bytea_output yang dapat diatur ke escape untuk menampilkan bytea dalam format lama dengan versi PostgreSQL yang lebih baru. Sayangnya, pg_dump tidak menghormati parameter itu saat membuat dump, selalu menggunakan hex "baru" format.

Hasilnya adalah dump yang berisi objek besar dari PostgreSQL versi 9.0 atau yang lebih baru tidak dapat dipulihkan ke dalam database pra-9.0.

Anda harus mentransfer objek besar ini dengan cara lain, mungkin dengan menulis program migrasi.

Anda dapat mengusulkan (pada milis pgsql-hackers) sebuah opsi untuk pg_dump yang memungkinkan untuk mengatur bytea_escape untuk dump, tetapi Anda mungkin menemui penolakan, karena memulihkan dump dari versi PostgreSQL yang lebih baru ke yang lebih lama tidak didukung.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TypeError:tidak dapat lepas dari psycopg2.extensions.Binary to binary

  2. Cara menemukan tabel anak yang mewarisi dari tabel lain di PSQL

  3. psycopg2 mapping Python :daftar dicts ke Postgres :array tipe komposit untuk pernyataan INSERT

  4. Startup hibernasi sangat lambat

  5. Postgres:Ubah varchar menjadi teks