sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan du dumper de store objektdata fra Postgres 9.4 og importerer dem derefter til Postgres8.x?

Problemet er, at dumpen bruger funktionen pg_catalog.lowrite(integer, bytea) at oprette det store objekt, og standardsyntaksen hvordan bytea bogstaver er repræsenteret i PostgreSQL er ændret med version 9.0.

Der er parameteren bytea_output som kan indstilles til escape for at udlæse bytea i det gamle format med senere PostgreSQL-versioner. Ak, pg_dump respekterer ikke denne parameter ved oprettelse af dumps, den bruger altid den "nye" hex format.

Resultatet er, at et dump, der indeholder store objekter fra en PostgreSQL-version af 9.0 eller nyere, ikke kan gendannes i en database før 9.0.

Du bliver nødt til at overføre disse store objekter på en anden måde, sandsynligvis ved at skrive et migreringsprogram.

Du kan foreslå (på pgsql-hackers mailingliste) en mulighed for at pg_dump der gør det muligt at indstille bytea_escape for dumpet, men du møder måske modstand, da gendannelse af et dump fra en senere PostgreSQL-version til en ældre ikke understøttes.



  1. Få den næsthøjeste værdi i en MySQL-tabel

  2. MySQL vælger top X-poster for hver enkelt person i tabellen

  3. SQL:Gruppetæller i individuelle resultatrækker

  4. MySQL distinkt tæller, hvis betingelserne er unikke