Django、Heroku 和 PostgreSQL

3

我刚开始在Heroku上发布Django应用,对此还不太熟悉。我已经阅读了他们的教程,并决定从修改他们的Django模板项目开始。

到目前为止一切都很顺利。

接着我创建了一个应用程序,定义了一个模型并运行了以下命令:

python3 manage.py makemigrations my_app
python3 manage.py migrate

一切似乎都还好。

然后我推送到Heroku,没有立即出现投诉。

然而,现在当我尝试保存新模型时,会出现以下错误:

ProgrammingError at /my_app/
relation "my_app_myappmodel" does not exist
LINE 1: INSERT INTO "my_app_myappmodel" ("field1", "field2", "field3") VALUES...

奇怪...

我在本地运行一切正常。

我尝试过清理迁移、虚拟迁移、合并迁移等方法(如其他S.O.帖子所建议的),但都没有起作用。

出现了什么问题,我该如何解决?


你有多少个迁移,也许你可以在这里添加代码? - Brown Bear
@BearBrown 这只是最初的。 - SumNeuron
你在 Heroku 实例上运行了 "migrate" 命令吗? - Aamir Rind
@AamirAdnan 这与在本地运行迁移并推送 git 存储库有何不同? - SumNeuron
2个回答

4

当你推送由 makemigrations 生成的代码后,你需要在 Heroku 上实际运行迁移。你可以通过 heroku run manage.py migrate 来完成此操作。


2

请在终端中运行以下命令

heroku run python manage.py migrate

或者您也可以这样做:

在您的本地 settings.py 文件中,将您的 DATABASES 变量更改为使用 heroku 的变量,然后从终端运行。

python manage.py makemigrations
python manage.py migrate

但通常情况下,除非你真的很绝望或不关心,否则不应该在Heroku生产数据库中进行本地更改(例如选项2)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接