使用南迁移将DB更新到heroku的问题

时间:2013-01-18 17:49:28

标签: django heroku migration django-south schema-migration

我有一个Django proyect在heroku运行了一段时间了,事情就是那样,树天前,我已经尝试更新我的架构模型但是,每次我写

heroku run python manage.py migrate quizzer

heroku一直告诉我一切都是最新的,但我已经改变了我的models.py文件夹并一如既往地运行模式迁移。

如果您知道为什么会这样,或者我如何强制架构迁移到我的heroku应用程序,请告诉我如何。

Ps:我无法删除洞数据库,因为存储在heroku中的数据和我本地服务器数据库中存储的数据不一样,我不想丢失用户数据

3 个答案:

答案 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)

来自requirements.txt的

South可能会丢失。尝试:

pip freeze > requirements.txt

...接着是另一个git add / commit / push。

此外,根据South installation instructions,必须先运行syncdb,“才能制作南迁移跟踪表”。所以试试:

heroku run python manage.py syncdb

...然后再次尝试迁移命令。