データベースをダンプして他のユーザーでレストアする
PostgreSQLはpg_dumpしただけでは他のユーザーで使えないです。
ダンプしたファイルにオーナーとかが書き込まれているからです。
そのため、ちょっとだけだけコツが要ります。
まず、-Oをつけてダンプします。
pg_dump -O dbname > dbname.sql
変えたいオーナーを作成します。
$ createuser www-data Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) y
スーパーユーザで作成するのがコツです。
既存のユーザーをスーパーユーザにするには
http://wrath.rubyonrails.org/pipermail/rails/2005-March/004018.html
を参照しましょう。
それでレストアします。
createdb -E unicode dbname psql dbname < dbname.sql
※ alter *** でチマチマ直すの面倒だもんね!