我跑步时会发生什么:
zcat /mnt/Postgres/restoreFile.gz | psql my_db
在工作数据库上执行ALTER TABLE
和其他标准操作后,duplicated keys
出现问题。当我停止它并尝试将其插入数据库时,由于duplicates key
和sequences
导致出现constraints
错误。似乎所有数据都在其中,但是序列如何。该数据库真正发生了什么?
答案 0 :(得分:1)
普通的Postgres备份由表设计(如create table
)和数据(如insert
)语句组成。如果您运行两次,大多数设计语句将失败。只要数据定义允许重复行,insert
语句就会成功。
因此,将数据库还原到生产服务器通常会导致在没有主键的表中有很多重复的行。备份后所做的某些设计更改(例如更改表的所有者)可能会被撤消。