我正在尝试备份整个postgres数据库并正确还原,但是在尝试还原备份时我看到了一个错误列表。
我正在使用pg_dump来创建备份sql文件。 (我有一个.pgpass文件的密码)
sudo -u postgres pg_dump -d db-w > backup.sql
当我尝试使用以下命令恢复数据库时
sudo -u postgres psql db < backup.sql
我得到一个错误列表,如:
ERROR: duplicate key value violates unique constraint
ERROR: multiple primary keys for table
ERROR: relation <relation> already exists
ERROR: trigger <trigger> for relation <relation> already exist
我没有对数据库进行任何更改。我只是执行备份并立即恢复备份。
我做错了什么?
答案 0 :(得分:0)
您在现有数据库上进行还原,如果您需要并确保使用备份替换数据库,可以使用选项--clean和--create
-c, - 清洁 在重新创建数据库对象之前清理(删除)它们。 (这有可能 如果没有任何对象,则生成一些无害的错误消息 存在于目标数据库中。)
-C, - 创建 在还原到数据库之前创建数据库。如果--clean也是 在连接之前指定,删除并重新创建目标数据库 它。