繁体   English   中英

Heroku和Django运行服务器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM