Postgres/Postgis - 转储并恢复到不同用户的新服务器

Jah*_*tal 3 postgresql postgis

我找了一会儿找到这个答案,但没有运气.

情况:

我目前在我的生产环境中运行Postgresql.我准备扩展我的数据库并将其移动到一个大型服务器实例.我错误地设置了具有所有权限的postgres用户的初始数据库,我希望新数据库由我创建的自定义用户控制.即当前数据库的所有者是postgres,我想要新的数据库所有者pooper.

要转储,我正在运行:

pg_dump -d database_name > database_name.sql

要在单独的机器上恢复,我正在运行:

psql database_name < database_name.sql

如果用户是相同的,即两者都相同,postgres那么它将正常工作,但是当切换用户时,我的应用程序无法正确加载.疯狂是否有秘密?我没什么好看的.

我的系统:

  • Debian Wheezy
  • Postgresql 9.1
  • Postgis扩展

bma*_*bma 11

  • --no-owner标志的pg_dump (见pg_dump --help)
  • 使用新所有者创建新数据库CREATE DATABASE foo OWNER pooper;,
  • 加载通过psql -U pooper -d database_name -f database_name.sql.