9.2でデータベースを再インポートする目的でデータベース9.0をダンプすると、スキーマに問題が発生します。
たとえば、スキーマfooのテーブルバーは次のようにエクスポートされます。
SET search_path = foo, pg_catalog;
...
CREATE TABLE bar (
...
);
ALTER TABLE foo.bar OWNER TO johndoe;
テーブルバーはスキーマ'public'で作成されるため、9.2でこれをインポートすると期待どおりに機能しません。ALTER TABLEステートメントは「エラー:リレーション「foo.bar」が存在しません」で失敗します。
ダンプファイルの*pg_dump*コマンドによって発行された'SETsearch_path'ディレクティブは、デフォルトのスキーマを設定しても問題ないと思いました(9.0でインポートすると機能します)が、9.2では機能しません。
明示的なスキーマ名でpg_dumpの出力を変える方法はありますか?構成ディレクティブを見逃していませんか?
助けてくれてありがとう!
ライオネル