3

我搜索了一段时间才能找到这个答案,但没有运气。

情况:

我的生产环境中目前正在运行 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 扩展
4

1 回答 1

11
  • --no-owner带有标志的 pg_dump (参见 参考资料pg_dump --help
  • 使用新所有者创建新数据库CREATE DATABASE foo OWNER pooper;
  • 通过加载psql -U pooper -d database_name -f database_name.sql
于 2013-07-20T02:09:50.537 回答