我在Heroku上使用Heroku Postgres运行Django Web应用程序。几天前,我对应用程序的模型进行了一些更改,在某些模型字段中添加unique=True
,然后将其删除(除其他外,只是有些混乱),并进行了一些迁移。这肯定会破坏某些东西,不幸的是,直到几天后,我在本地数据库中进行了许多其他迁移之后,才发现它。我能够解决的唯一方法是使用:
python manage.py migrate --fake
这对我的本地/ dev postgres很正常,但是在生产环境中,当我尝试进行迁移和迁移时,它仍然损坏。运行迁移时:
django.db.utils.ProgrammingError: table "publicinteraction_smoothmessage_extra_software" does not
exist
由于已经过了几天,所以我不知道我到底是伪造还是伪造了哪个迁移,并且Django文档中有关“必须手动纠正--fake的风险”的部分也来得太晚了...
运行python manage.py migrate publicinteraction zero
会有所帮助,还是会导致我的数据丢失?
这是我在真实用户中的第一个生产项目,遇到这样的问题对于Python和Django的自学成才的开发人员来说都是全新的。闲逛并弄乱生产数据库对于我的技能水平来说感觉有点发痒,而且太紧张了。
如何继续进行而不丢失所有数据?在将迁移本地化为生产时要牢记的最佳做法也非常受人们欢迎:)