読者です 読者をやめる 読者になる 読者になる

データベースをダンプして他のユーザーでレストアする

PostgreSQL

PostgreSQLpg_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 *** でチマチマ直すの面倒だもんね!