0

当我跑步时会发生什么:

zcat /mnt/Postgres/restoreFile.gz | psql my_db

在工作数据库上,在做ALTER TABLE和其他标准事情之后,duplicated keys. 当我停止它并尝试插入数据库时​​,duplicates key由于sequencesand 而出现错误constraints。似乎所有数据都在其中,但序列呢?那个数据库到底发生了什么?

4

1 回答 1

1

一个普通的 Postgres 备份由表设计(like create table)和数据(like insert)语句组成。如果你运行它两次,大多数设计语句都会失败。insert只要数据定义允许重复行,这些语句就会成功。

因此,将数据库恢复到生产服务器通常会导致表中出现大量没有主键的重复行。备份后所做的一些设计更改(例如更改表的所有者)可能会被撤消。

于 2019-02-09T11:19:10.877 回答