Heroku迁移上的Django Rest框架上的列已存在错误

时间:2018-08-24 06:34:34

标签: django python-3.x heroku django-rest-framework django-migrations

我已经更新了模型,但是无法进行迁移,问题是:

我遇到类似column "blah blah" of relation "blah blah blah" already exists的错误

提到的列应存在于数据库中,但不应存在于迁移文件中,因为我没有对该模型字段进行任何添加或修改,并且它已经在以前的迁移之一中成功创建,甚至在没有迁移的情况下也经常使用任何错误。

当我使用--fake进行迁移时,这一次它不会创建该模型更新定义的迁移文件中真正不存在的字段。

部署在Heroku上,可能是由于代码层的回滚所致,因为回滚后的代码会恢复到较旧的版本,但数据库保持不变。

不丢失生产数据库中任何数据的最佳方法是什么?

以下是bash的屏幕截图;在之前的成功迁移之一中创建的迁移之前,模型和数据库上的时区,结束时间和开始时间字段已经存在

Click here to screenshot of Heroku Bash when I try to run migrations

谢谢

1 个答案:

答案 0 :(得分:0)

您不应该在Heroku上运行makemigrations。 本地,然后提交结果,进行部署,然后仅运行迁移。

实际上,您已经完全不同步;如果您不需要保留任何数据,那么最简单的方法就是删除数据库并重新启动。