我需要使用 postgres 用户名 1 从计算机 1 转储一个 postgres 数据库,然后使用 postgres 用户名 2 将其恢复到计算机 2 上。我不断遇到错误,看起来备份文件想要使用 username1:
当我在computer2上运行它时:
psql dbname < backupname.pgsql
我收到此错误:
ERROR: role "username1" does not exist
我努力了:
// 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
是需要修改转储还是恢复才能克服这个问题?
问题在于倾销。凭借洞察力这个帖子我能够使用以下方法解决这个问题:
// On Computer1
pg_dump dbname -O -x > backupname.sql
// On Computer2
psql dbname < backupname.sql
使用的选项标志pg_dump
are:
-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)
See the pg_dump 的 PostgreSQL 文档有关选项标志的更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)