django 应用程序不断迁移而未生效 [heroku]

Posted

技术标签:

【中文标题】django 应用程序不断迁移而未生效 [heroku]【英文标题】:django app keeps migrating without taking effect [heroku] 【发布时间】:2017-04-19 01:22:42 【问题描述】:

过去三天我一直在尝试解决此问题,但一直失败。

所以,我有一个简单的应用程序,现在只有 models.py 和 admin.py。 当我在本地迁移时,一切都很好,当我运行 createsuperuser 时,我可以创建一个可用于登录管理仪表板的用户。

但是,当我在 heroku 上做同样的事情时。它不起作用.. 坏消息是,这些表从未创建过,因为当我再次运行 migrate 时会发生这种情况:

我真的不知道它有什么问题,所以任何帮助将不胜感激。 在此先感谢:)

【问题讨论】:

您是在 heroku 上创建迁移文件吗?运行heroku run ./manage.py makemigrations,然后运行migrate 是的,看第一张图,我照你说的做了。 AFAIK ,您需要通过 git 推送迁移文件,然后运行迁移。它应该可以工作。 能否请您评论命令,因为我不太明白您的意思.. 【参考方案1】:

除了dnit13提到的问题之外,另一个问题是您使用的是sqlite。这不能在 Heroku 上工作。您必须使用适当的数据库,由插件提供。

【讨论】:

你是对的,当我改用 Postgres 时,它起作用了。不过必须学习它,这是值得的!谢谢:)【参考方案2】:

在本地创建迁移文件python manage.py makemigrations

将这些文件添加到 git 并推送到 heroku。 (确保 .gitignore 中不会忽略迁移)

git add .
git commit -m "migration files"
git push heroku master  # assuming your alias to be heroku

然后在heroku上迁移

heroku run ./manage.py migrate

【讨论】:

以上是关于django 应用程序不断迁移而未生效 [heroku]的主要内容,如果未能解决你的问题,请参考以下文章

django 1.7 迁移——如何清除所有迁移并从头开始?

如何将 Django 项目迁移到 Pythonanywhere

Django Makemigrations 和 Migrate 不断重复

Django Admin Cookbook-38如何获取特定对象的Django Admin后台URL

Django Admin Cookbook-39如何两次向Django管理员添加模型

Django Admin Cookbook-24如何从两个不同的模型创建一个Django Admin后台页面