PostgreSQLを複数バージョン導入した環境で、リストアが上手くいかない場合の対処方法
単純な方法で対処できました。
photo credit: isriya via photopin cc
会社のパソコン(Windows)には、PostgreSQL 8.3をインストールした後に、9.1をインストールしてあります。
PgAdmin IIIで、テーブル作成等を行っている限り問題はありませんが、バックアップとリストアができなくなっていました。
PostgreSQL 8.3を消さなかったために、8.3用のバックアップとリストアの実行モジュールが使われて、バージョンがあわないエラーが表示されていました。
対処方法
リストアの実行状態を確認すると、ディレクトリが8.3用のディレクトリになっていました。
C:\Program Files\PostgreSQL\8.3\bin\pg_restore.exe --host localhost --port 5432 --username postgres --dbname dbname --verbose "c:\backup.backup"
ディレクトリを変えれば動作するだろうと思い、コマンドプロンプトから
"C:\Program Files\PostgreSQL\9.1\bin\pg_restore.exe" --host localhost --port 5432 --username postgres --dbname dbname --verbose "c:\backup.backup"
というように実行したら、 リストアされていました。
気がつけば簡単なことでしたが、気づくまで半年くらいかかっていました。
バックアップも同じようにやればできると予想しています。