我找了一会儿找到这个答案,但没有运气。
情况:
我的Postgresql目前正在我的生产环境中运行。我准备扩展我的数据库并将其移动到一个大型服务器实例。我错误地设置了具有所有权限的postgres用户的初始数据库,我希望新数据库由我创建的自定义用户控制。即当前数据库的所有者是postgres
,我希望新数据库所有者为pooper
。
要转储,我正在运行:
pg_dump -d database_name > database_name.sql
要在单独的计算机上恢复,我正在运行:
psql database_name < database_name.sql
如果用户是相同的,即两个postgres
,那么它将正常工作,但在切换用户时,我的应用程序无法正确加载。疯狂是否有秘密?我没什么好看的。
我的系统:
答案 0 :(得分:11)
--no-owner
标志的pg_dump(请参阅pg_dump --help
)CREATE DATABASE foo OWNER pooper;
psql -U pooper -d database_name -f database_name.sql
加载。