![](/img/trans.png)
[英]Why is my django development server running locally so much faster then running the same development server on Heroku?
[英]Heroku and Django Running Server
我正在关注本教程: http : //tutorial.djangogirls.org/en/domain/README.html
当我做python manage.py runserver
它工作正常。 我跑步时也可以
heroku ps:scale web=1
然后
heroku open
使用python manage.py runserver
可以显示我的博客文章以及我添加的所有内容。 但是,当我在heroku open
运行服务器时,没有发布,好像数据库丢失了一样。
这是为什么? 为什么这两个命令启动同一个网页,但帖子/数据库不同?
这使我想到了后续问题:如何知道何时需要再次为服务器运行迁移或进行迁移? 这样可以解决问题吗? 这些命令究竟是做什么的/为什么有必要?
谢谢
编辑:
奖励问题:为什么我的帖子按时间降序显示? 新帖子位于页面底部,而不是顶部。 我该如何更改?
您的本地开发和部署的项目之间存在差异。 我认为您是在本地创建帖子的。 因此它们被本地保存到您的数据库中。 在本地,您使用设置'django.db.backends.sqlite3'
中定义的基于文件的数据库,这意味着当您运行manage.py syncdb
,将在其中创建所有表的文件。 当您将代码部署到heroku时,代码被推送到服务器并从此位置运行。 它可以随处可见,因此无法连接到本地数据库文件。 对于您的项目,您还必须在heroku上建立一个数据库。 我建议阅读这篇文章 。 当您要传输数据时,可以在本地创建数据库转储并将所有数据加载到您的heroku数据库中。 在这里和这里描述。
还有一点,您不会在heroku open
或通过fire python manage.py runserver
运行服务器。 当您的git push heroku master
完成后,heroku服务器将自动启动。 它使用Procfile
的配置。
当您要迁移heroku数据库时,必须运行heroku run python manage.py migrate <app_name>
migration heroku run python manage.py migrate <app_name>
不是在heroku服务器上远程完成迁移。 每次更改模型并使用python manage.py makemigration <app_name>
添加迁移文件时,都必须运行此命令。 执行此操作时,必须将数据库本地和远程迁移。 这意味着您更改数据库结构以匹配您的模型。 请记住,模型只是数据库的抽象(orm)。
我不知道您的项目,但订单合法。 尝试将其想象为行。 第一排在前。 因此,最后输入的行在底部。 您可以使用.order_by('-id')
类的方法更改查询集的顺序。 因此,您将获得相反顺序的所有条目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.