我在 Heroku 中的迁移遇到了一些问题。我已经尝试了几件事,但似乎都没有奏效。我觉得我应该删除导致问题的表,这将删除生产中的所有数据。
如果我删除表并重新创建表,我是否能够恢复我丢失的所有数据?因为我会在删除表之前在 Heroku 上备份我的数据库。
谢谢!
我在 Heroku 中的迁移遇到了一些问题。我已经尝试了几件事,但似乎都没有奏效。我觉得我应该删除导致问题的表,这将删除生产中的所有数据。
如果我删除表并重新创建表,我是否能够恢复我丢失的所有数据?因为我会在删除表之前在 Heroku 上备份我的数据库。
谢谢!
您应该使用
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 值。
修改这个基本配方以满足更多奇特的要求。