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
的服务器时,没有任何帖子,好像数据库丢失了之类的。
这是为什么?为什么这两个命令启动相同的网页但使用不同的 posts/different 数据库?
这让我想到了我的后续问题:我如何知道何时需要为服务器再次 运行 迁移或 makemigrations?这样做能解决问题吗?这些命令到底有什么用 do/why 它们是必需的吗?
谢谢
编辑:
附加问题:为什么我的帖子按时间降序显示?新帖子位于页面底部而不是顶部。我该如何更改?
您的本地开发项目与您部署的项目存在差异。
我假设您是在本地创建帖子的。所以它们被保存在本地到你的数据库中。在本地,您使用在设置 'django.db.backends.sqlite3'
中定义的基于文件的数据库,这意味着当您 运行 manage.py syncdb
时,将创建包含所有表的文件。当您将代码部署到 heroku 时,代码将被推送到服务器并从这个地方 运行s。这可能无处不在,因此它无法连接到您的本地数据库文件。对于您的项目,您还必须在 heroku 上设置一个数据库。我建议阅读 this article. When you want to transfer your data you can create a database dump local and load all data to you heroku database. Described here and here.
还有一点,你不会运行服务器heroku open
或火python manage.py runserver
。 git push heroku master
完成后,heroku 服务器会自动启动。它使用来自 Procfile
.
的配置
当您想迁移 heroku 数据库时,您必须 运行 heroku run python manage.py migrate <app_name>
而不是在 heroku 服务器上远程完成迁移。每次更改模型并使用 python manage.py makemigration <app_name>
添加迁移文件时,都必须 运行 此命令。当您这样做时,您必须在本地和远程迁移数据库。这意味着您更改数据库结构以匹配您的模型。请记住,模型只是您数据库的抽象(orm)。
我不知道你的项目,但订单看起来是合法的。试着把它想象成行。第一行排在第一位。所以最后输入的行在底部。您可以使用 .order_by('-id')
之类的内容更改查询集的顺序。因此,您会以相反的顺序获得所有条目。
我正在学习本教程: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
的服务器时,没有任何帖子,好像数据库丢失了之类的。
这是为什么?为什么这两个命令启动相同的网页但使用不同的 posts/different 数据库?
这让我想到了我的后续问题:我如何知道何时需要为服务器再次 运行 迁移或 makemigrations?这样做能解决问题吗?这些命令到底有什么用 do/why 它们是必需的吗?
谢谢
编辑:
附加问题:为什么我的帖子按时间降序显示?新帖子位于页面底部而不是顶部。我该如何更改?
您的本地开发项目与您部署的项目存在差异。
我假设您是在本地创建帖子的。所以它们被保存在本地到你的数据库中。在本地,您使用在设置 'django.db.backends.sqlite3'
中定义的基于文件的数据库,这意味着当您 运行 manage.py syncdb
时,将创建包含所有表的文件。当您将代码部署到 heroku 时,代码将被推送到服务器并从这个地方 运行s。这可能无处不在,因此它无法连接到您的本地数据库文件。对于您的项目,您还必须在 heroku 上设置一个数据库。我建议阅读 this article. When you want to transfer your data you can create a database dump local and load all data to you heroku database. Described here and here.
还有一点,你不会运行服务器heroku open
或火python manage.py runserver
。 git push heroku master
完成后,heroku 服务器会自动启动。它使用来自 Procfile
.
当您想迁移 heroku 数据库时,您必须 运行 heroku run python manage.py migrate <app_name>
而不是在 heroku 服务器上远程完成迁移。每次更改模型并使用 python manage.py makemigration <app_name>
添加迁移文件时,都必须 运行 此命令。当您这样做时,您必须在本地和远程迁移数据库。这意味着您更改数据库结构以匹配您的模型。请记住,模型只是您数据库的抽象(orm)。
我不知道你的项目,但订单看起来是合法的。试着把它想象成行。第一行排在第一位。所以最后输入的行在底部。您可以使用 .order_by('-id')
之类的内容更改查询集的顺序。因此,您会以相反的顺序获得所有条目。