問題は、ダンプが関数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から古いバージョンへのダンプの復元はサポートされていないため、抵抗に遭遇する可能性があります。