phppgadminのdumpが動かないとき
PostgresqlのPHPベースのGUI管理ツール phppgadminですが、バックアップを実行しても空のファイルが生成されたりと、どう~してもDBのバックアップを取ることが出来ませんでした。
結論:pg_dumpの場所を確認する
この手のエラーはpg_dumpのパスがphppgadminに記載されているものとで相違があるから発生するケースがほとんどなのだそうです。
参考
phpPgAdminでエクスポートをする方法 WEBサイト+phpリファレンスより
デフォルトでは
正しくエクスポート出来ない場合、
conf/config.inc.php のpg_dumpのパス設定を直すとエクスポートできます。
デフォルトでは
$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’] = ‘/usr/bin/pg_dumpall’;
となっているので
$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/local/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’] = ‘/usr/local/bin/pg_dumpall’;
とか
$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/local/pgsql/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’]= ‘/usr/local/pgsql/bin/pg_dumpall’;
とかに変更するとエクスポートできるようになります。
ちなみに私は後者の設定でエクスポートできるようになりました。
正しくエクスポート出来ない場合、
conf/config.inc.php のpg_dumpのパス設定を直すとエクスポートできます。
デフォルトでは
$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’] = ‘/usr/bin/pg_dumpall’;
となっているので
$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/local/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’] = ‘/usr/local/bin/pg_dumpall’;
とか
$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/local/pgsql/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’]= ‘/usr/local/pgsql/bin/pg_dumpall’;
とかに変更するとエクスポートできるようになります。
ちなみに私は後者の設定でエクスポートできるようになりました。
・・・それでも出来ません。
冷静にpg_dumpの場所を確認
すると、私の環境では以下のディレクトリの中にありました。
/usr/local/postgresql/bin
と、いうわけで、以下のように変更して、無事dumpの実行ができましたとさっ!
pgadminのcomf/config.inc.phpの35行目あたり
$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/local/postgresql/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’] = ‘/usr/local/postgresql/bin/pg_dumpall’;
$conf[‘servers’][0][‘pg_dumpall_path’] = ‘/usr/local/postgresql/bin/pg_dumpall’;
まとめ:phppgadminのdumpが動かないとき
多くの先人が語るとおり、phppgadminでdumpが動かない場合ほとんどがpg_dumpの場所が間違っているケース。それぞれ環境によって場所が違うようですから、どうしてもdumpがうまくいかないときは/usr/local下のpostgresqlまたはpgsqlなどからpg_dumpの場所を確認してみてください。