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

问题描述 投票:0回答:1

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

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

database postgresql psql restore dump
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.