Problem polega na tym, że zrzut używa funkcji pg_catalog.lowrite(integer, bytea)
aby utworzyć duży obiekt i domyślną składnię jak bytea
literały są reprezentowane w PostgreSQL zmieniły się w wersji 9.0.
Jest parametr bytea_output
który można ustawić na escape
wyprowadzić bytea
w starym formacie z nowszymi wersjami PostgreSQL. Niestety, pg_dump
nie respektuje tego parametru podczas tworzenia zrzutów, zawsze używa „nowego” hex
format.
W rezultacie zrzutu zawierającego duże obiekty z wersji PostgreSQL 9.0 lub nowszej nie można przywrócić do bazy danych przed wersją 9.0.
Będziesz musiał przenieść te duże obiekty w inny sposób, prawdopodobnie pisząc program do migracji.
Możesz zaproponować (na liście dyskusyjnej pgsql-hackers) opcję pg_dump
który pozwala ustawić bytea_escape
dla zrzutu, ale możesz napotkać opór, ponieważ przywracanie zrzutu z późniejszej wersji PostgreSQL do starszej nie jest obsługiwane.