Проблемът е, че дъмпът използва функцията pg_catalog.lowrite(integer, bytea)
за създаване на големия обект и синтаксиса по подразбиране как bytea
литералите са представени в PostgreSQL е променен с версия 9.0.
Има параметър bytea_output
който може да бъде настроен на escape
за извеждане на bytea
в стария формат с по-късни версии на PostgreSQL. Уви, pg_dump
не зачита този параметър при създаване на дъмпове, той винаги използва „новия“ hex
формат.
Резултатът е, че дъмп, съдържащ големи обекти от PostgreSQL версия 9.0 или по-нова, не може да бъде възстановен в база данни преди 9.0.
Ще трябва да прехвърлите тези големи обекти по някакъв друг начин, вероятно като напишете програма за мигриране.
Можете да предложите (в пощенския списък на pgsql-hackers) опция за pg_dump
което позволява да се зададе bytea_escape
за дъмпа, но може да срещнете съпротива, тъй като възстановяването на дъмп от по-късна версия на PostgreSQL към по-стара не се поддържа.