ric*_*nae 4 postgresql pg-dump pg-restore psql
我需要从计算机1中以postgres用户名1转储一个postgres数据库,然后在具有postgres用户名2的computer2上还原它。我一直遇到似乎备份文件要使用username1的错误:
当我在computer2上运行它时:
psql dbname < backupname.pgsql
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ERROR: role "username1" does not exist
Run Code Online (Sandbox Code Playgroud)
我试过了:
// Dumping from computer1:
pg_dump dbname > backupname.sql
pg_dump dbname > backupname.pgsql
pg_dump -U username1 dbname -N topology -T spacial_ref_sys > backupname.pgsql
// Restoring on computer2:
psql dbname < backupname.pgsql
Run Code Online (Sandbox Code Playgroud)
是否需要修改转储或还原才能克服此问题?
问题在于倾销。通过这篇文章的见解,我能够使用以下方法解决此问题:
// On Computer1
pg_dump dbname -O -x > backupname.sql
// On Computer2
psql dbname < backupname.sql
Run Code Online (Sandbox Code Playgroud)
用于的选项标志pg_dump是:
-O <-- No owner
Do not output commands to set ownership of objects to match the original database
-x <-- No privileges
Prevent dumping of access privileges (grant/revoke commands)
Run Code Online (Sandbox Code Playgroud)
有关选项标志的更多信息,请参见PostgreSQL文档pg_dump。
| 归档时间: |
|
| 查看次数: |
2749 次 |
| 最近记录: |