复制没有角色的postgresql数据

复制没有角色的postgresql数据,postgresql,pg-dump,Postgresql,Pg Dump,我在一个名为srcdcachedump.gz的文件中有一个名为srcDB的Postgres数据库的快照,它是使用pg_dump获得的。转储文件来自一个生产数据库,因此有许多不同的角色。我想做的是创建一个名为devDB的开发数据库,它只有一个角色,一个名为“development”的用户,但与原始数据库具有相同的模式 我最初尝试这样做的方式是: gunzip -c srcDB-cachedump.gz | psql -d devDB -U development -W 然而,当我运行这个程序时,

我在一个名为srcdcachedump.gz的文件中有一个名为srcDB的Postgres数据库的快照,它是使用pg_dump获得的。转储文件来自一个生产数据库,因此有许多不同的角色。我想做的是创建一个名为devDB的开发数据库,它只有一个角色,一个名为“development”的用户,但与原始数据库具有相同的模式

我最初尝试这样做的方式是:

gunzip -c srcDB-cachedump.gz | psql -d devDB -U development -W

然而,当我运行这个程序时,我遇到了许多错误,这些错误本质上归结为“角色不存在”。如果可能的话,我希望绕过在生产数据库中重新创建角色的过程,因为我的团队中有其他程序员,我希望开发环境尽可能具有可移植性。不过,我在博士后管理方面相对较新,所以我感到茫然

您可能希望使用
pg_restore
而不是
psql
来恢复数据库。它有一组您可能需要的选项。您可能还需要将存档中的DB dump format
sql
更改为postgres自定义凹凸格式。以下是指向手册的链接:您可以访问下面的链接以获得答案@IgorRomanchenko,问题是我正在使用转储文件(纯文本)我无法访问原始数据库。@rogue_js您仍然可以尝试将
pg_restore
与纯文本转储一起使用。我不是舒尔,它可以工作。