2

我有一个 Django proyect 在 heroku 中运行了一段时间,问题是,树几天前,我尝试更新我的模式模型,但是,每次我写

heroku run python manage.py migrate quizzer

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

如果您知道为什么会发生这种情况,或者我如何强制将架构迁移到我的 heroku 应用程序,请告诉我如何操作。

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

4

3 回答 3

5

这是在修改您的 models.py 后在 quizzer 上运行模式迁移的工作流程

./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。

于 2013-01-18T18:01:48.837 回答
1

South might be missing from requirements.txt. Try:

pip freeze > requirements.txt

...followed by another git add/commit/push.

Also, according to the South installation instructions, syncdb must be run first, "to make the South migration-tracking tables". So try:

heroku run python manage.py syncdb

...then try the migrate command again.

于 2014-05-14T03:44:19.570 回答
1

我也有这个问题。我通过再次运行heroku restart并运行migrate命令解决了这个问题。不知道它为什么有效(怀疑它与初始有关),但至少它有效。

希望有帮助!

于 2014-02-27T15:37:02.673 回答