添加列后如何将数据还原到postgresql数据库?

我有一个正在开发的Postgresql数据库(烧瓶,余烬)。我做了db_dump来备份现有数据。然后,我在代码中添加了一个列。我必须再次创建数据库,以便新列将在数据库中。当我尝试使用psql -d dbname -f dumpfile恢复数据时,出现很多错误,例如“关系“ xx”已存在”,“违反外键约束”等。

我是新来的。有没有办法将旧数据还原到已经建立了所有关系的新的空数据库?还是在代码中添加一列以保留数据时,是否已向数据库中添加了“手工”列?

mingjiang2009 回答:添加列后如何将数据还原到postgresql数据库?

进行pg_dump时,您仅转储了数据和表结构,bit没有删除任何表。现在,您正在尝试还原转储,这将尝试重新创建表。

您有几个选择(第一个是我建议的选择): 将--clean添加到您的pg_dump命令中-当您还原转储文件时,这将DROP所有表。

您还可以--data-only pg_dump命令-这只会转储现有数据,而不会尝试重新创建表。但是,您将必须找到一种方法来截断表(或从表中删除数据),以免遇到任何FK错误或PK冲突。

,

正确的操作方法是使用ALTER TABLE向表中添加一列。

升级代码时,只需将旧代码替换为新代码即可。对于数据库则不是这样,因为它保存状态。您将必须提供修改现有数据库的SQL语句,以使其更改为所需的新状态。

要使其易于管理,请使用Flyway或Liquibase等专用软件。

本文链接:https://www.f2er.com/2930581.html

大家都在问