Django迁移不推动Heroku
我更新了Django博客,使用slug URLDjango迁移不推动Heroku,django,heroku,django-models,heroku-postgres,Django,Heroku,Django Models,Heroku Postgres,我更新了Django博客,使用slug URL/而不是id/。我还向文章模型添加了一个slugField,并将所有HREF转换为Article.slug。运行了迁移,在本地一切正常。然而,当我推到Heroku时,我犯了一个错误 这就是我试图保存一篇新文章时发生的情况 ProgrammingError at /admin/articles/article/ column articles_article.slug does not exist LINE 1: ...ticles_article"
/
而不是id/
。我还向文章模型添加了一个slugField,并将所有HREF转换为Article.slug
。运行了迁移,在本地一切正常。然而,当我推到Heroku时,我犯了一个错误
这就是我试图保存一篇新文章时发生的情况
ProgrammingError at /admin/articles/article/
column articles_article.slug does not exist
LINE 1: ...ticles_article"."id", "articles_article"."title", "articles_...
^
Request Method: GET
Request URL: https://***********.herokuapp.com/admin/articles/article/
Django Version: 2.1.4
Exception Type: ProgrammingError
Exception Value:
column articles_article.slug does not exist
LINE 1: ...ticles_article"."id", "articles_article"."title", "articles_...
^
我检查了我的Heroku Postgress数据库,发现即使我进行了迁移,也没有添加新的slug列。我不确定下一步该怎么办。我目前正在寻找手动更新heroku postgress的方法,但如果有一种侵入性较小的方法来解决这个问题,我洗耳恭听 您是否先进行迁移,然后再进行迁移?你在上面的评论中提到了这一点。另外,您确定已将迁移应用于生产数据库吗?它需要在migrate命令中添加一个设置标志,以指向生产设置/db位置 您是否先进行迁移,然后再进行迁移?你在上面的评论中提到了这一点。另外,您确定已将迁移应用于生产数据库吗?它需要在migrate命令中添加一个设置标志,以指向生产设置/db位置 首先验证迁移是否已执行(heroku) 如果找不到,请确保已更新迁移(本地) 在db生产环境中运行迁移(heroku)
首先验证迁移是否已执行(heroku) 如果找不到,请确保已更新迁移(本地) 在db生产环境中运行迁移(heroku)
您是否正确迁移了数据库?(因此
manage.py migrate
?)是的。我做了python manage.py迁移
和makemigrations
。在推到heroku之前,第二次进行了很好的测量。您在heroku上运行迁移了吗heroku运行
python manage.py migrate
(提交并部署由migrate
生成的新迁移文件后)?您的本地数据库和Heroku数据库不同,需要分别迁移它们。(请注意,您不应该在Heroku上运行makemigrations
。这只是在本地发生的。)好的,所以我一直认为,在最初的推送之后,我不应该为Heroku执行migraine或进行迁移。为什么迁移对heroku是安全的,而makemigrations不是?因为makemigrations,顾名思义,会生成迁移文件。这些是代码库的一部分。您可以在本地创建它们,并将它们添加到git回购中。然后将代码推送到Heroku,之后需要将它们实际应用到数据库中,这是通过在Heroku上运行migrate来实现的。您正确迁移了数据库吗?(因此manage.py migrate
?)是的。我做了python manage.py迁移
和makemigrations
。在推到heroku之前,第二次进行了很好的测量。您在heroku上运行迁移了吗heroku运行
python manage.py migrate
(提交并部署由migrate
生成的新迁移文件后)?您的本地数据库和Heroku数据库不同,需要分别迁移它们。(请注意,您不应该在Heroku上运行makemigrations
。这只是在本地发生的。)好的,所以我一直认为,在最初的推送之后,我不应该为Heroku执行migraine或进行迁移。为什么迁移对heroku是安全的,而makemigrations不是?因为makemigrations,顾名思义,会生成迁移文件。这些是代码库的一部分。您可以在本地创建它们,并将它们添加到git回购中。然后你将代码推送到Heroku,然后你需要将它们实际应用到数据库中,你可以通过在Heroku上运行migrate来完成。它的顺序是正确的。它的顺序是正确的。在阅读了关于django和Heroku迁移的其他线程之后,我一直觉得我不应该在Heroku上进行迁移。在尝试此操作之前,有什么我应该知道的吗?在更改生产数据库之前,请进行备份。这将允许反向更改。你应该一直这样做以避免任何信息的丢失谢谢。成功了!在阅读了关于django和heroku迁移的其他文章之后,我一直觉得我不应该在heroku上进行迁移。在尝试此操作之前,有什么我应该知道的吗?在更改生产数据库之前,请进行备份。这将允许反向更改。你应该一直这样做以避免任何信息的丢失谢谢。成功了!
verify that the last migration of the article model is in the django_migrations table
python manage.py makemigrations
heroku run python manage.py migrate