我有一个Django proyect在heroku运行了一段时间了,事情就是那样,树天前,我已经尝试更新我的架构模型但是,每次我写
heroku run python manage.py migrate quizzer
heroku一直告诉我一切都是最新的,但我已经改变了我的models.py文件夹并一如既往地运行模式迁移。
如果您知道为什么会这样,或者我如何强制架构迁移到我的heroku应用程序,请告诉我如何。
Ps:我无法删除洞数据库,因为存储在heroku中的数据和我本地服务器数据库中存储的数据不一样,我不想丢失用户数据
答案 0 :(得分:5)
以下是修改models.py
后在quizzer上运行schemamigration的工作流程./manage.py schemamigration quizzer --auto # create migration
./manage.py migrate quizzer # apply migration locally
git add .
git commit -m "Changed quizzer models, added schemamigration"
git push heroku
heroku run python manage.py migrate quizzer # apply migration on heroku
听起来您可能忘记将您的迁移文件(通常在appname / migrations中找到)检入git,提交并将其推送到heroku。
答案 1 :(得分:1)
我也有这个问题。我通过运行heroku restart
并再次运行migrate
命令解决了这个问题。不知道为什么它有效(怀疑它与初始有关),但至少它有效。
希望有所帮助!
答案 2 :(得分:1)
South可能会丢失。尝试:
pip freeze > requirements.txt
...接着是另一个git add / commit / push。
此外,根据South installation instructions,必须先运行syncdb
,“才能制作南迁移跟踪表”。所以试试:
heroku run python manage.py syncdb
...然后再次尝试迁移命令。