0

我在 Heroku 中的迁移遇到了一些问题。我已经尝试了几件事,但似乎都没有奏效。我觉得我应该删除导致问题的表,这将删除生产中的所有数据。

如果我删除表并重新创建表,我是否能够恢复我丢失的所有数据?因为我会在删除表之前在 Heroku 上备份我的数据库。

谢谢!

4

1 回答 1

0

您应该使用

pg_dump -h hostname -p 5432 -U username -F c -t mytable -f dumpfile mydatabase

然后,在您删除并重新创建表后,您可以使用以下命令恢复数据

pg_restore -h hostname -p 5432 -U username -a -d mydatabase dumpfile

但是,如果表结构已更改,这将不起作用。

在这种情况下,您可能希望COPY直接使用将数据写入文件并从那里恢复它们。

例如,假设您计划添加另一列。然后你可以倾倒

COPY (SELECT *, NULL FROM mytable) TO '/file/on/dbserver';

使用新列创建表后,您可以

COPY mytable FROM '/file/on/dbserver';

新列将填充 NULL 值。

修改这个基本配方以满足更多奇特的要求。

于 2020-09-16T10:01:22.927 回答