Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django在heroku服务器don';不要创建表_Python_Django_Database_Heroku - Fatal编程技术网

Python django在heroku服务器don';不要创建表

Python django在heroku服务器don';不要创建表,python,django,database,heroku,Python,Django,Database,Heroku,Python版本2.7 Django版本1.9.7 我在heroku上创建了一个Django应用程序。我无法使heroku服务器正确迁移。过去,我在本地完成了所有的makemigrations,然后将它们推送到服务器上。这在过去是行之有效的。现在我想我会选择在服务器端进行迁移,因为我根本没有在本地运行这个应用程序 我刚刚在应用程序“main”的models.py中创建了一个新模型: from __future__ import unicode_literals from django.db i

Python版本2.7 Django版本1.9.7

我在heroku上创建了一个Django应用程序。我无法使heroku服务器正确迁移。过去,我在本地完成了所有的
makemigrations
,然后将它们推送到服务器上。这在过去是行之有效的。现在我想我会选择在服务器端进行迁移,因为我根本没有在本地运行这个应用程序

我刚刚在应用程序“main”的
models.py中创建了一个新模型:

from __future__ import unicode_literals

from django.db import models

class InstagramPhotos(models.Model):
    imageId = models.IntegerField()
    userId = models.IntegerField()
    likes = models.IntegerField()
    captionText = models.CharField(max_length=200)
    image = models.ImageField()
在将更改推送到服务器后,我运行了此操作,输出如下:

heroku run python manage.py makemigrations main
在主服务器上运行python manage.py makemigrations⬢ 冰滩-50253。。。启动,运行'main'的.8354迁移:
0001_initial.py: -创建模型InstagramPhotos

看起来还好吧?因此,我尝试迁移
,正如您所知,这将实际在数据库中创建表:

heroku run python manage.py migrate
在上运行python manage.py迁移⬢ 冰滩-50253。。。向上的 运行.7556要执行的操作:应用所有迁移:身份验证, ContentType、管理、运行迁移的会话:不迁移到 应用。您的模型所做的更改尚未反映在 迁移,因此不会应用。运行“manage.py makemigrations” 进行新迁移,然后重新运行“manage.py migrate”以应用 他们

无论我尝试过多少次重新运行
makemigrations
,然后再运行
migrate
,它似乎仍然无法启动。不知道为什么会发生这种情况,而且这样在heroku服务器上操作是不可能的?我确实需要在本地执行
makemigrations
并推送吗


仅供参考,我只是在
settings.py中仍定义了默认的sqlite3 DB,我遇到了类似的问题

我只是
ssh
进入heroku dyno,使用:
heroku运行bash
(从heroku应用程序文件夹ofc)

然后在需要时使用createsuperuser运行所有迁移和makemigration命令。 为我使用sqlite和postgre

  • 在本地运行这些命令
  • python manage.py makemigrations、、python manage.py migrate

    2.提交代码

    3.把它推给heroku大师

  • 运行
    heroku运行python manage.py makemigrations,,,,heroku运行python manage.py migrate

  • 您的问题应该得到解决

    在部署到Heroku时,我两次遇到相同的错误。在app目录下列出文件时,我发现缺少了django创建sql表所必需的db.sqlite3文件。虽然它会在本地自动创建文件,但在运行migrate命令时,它不会在heroku上创建

    这里有两个选项:

  • 在应用程序目录下的heroku上创建db.sqlite3文件
  • 在本地运行“python manage.py migrate”以创建db.sqlite3并将其推送到 希罗库回购

  • 不要在Heroku上运行makemigrations。在本地执行,提交结果并推送,然后在Heroku上运行迁移。谢谢,我还不能这样做,因为它希望我在本地进行迁移,而不更新所有依赖项。我想,对于Django的新版本,他们需要枕头,还没有想到我会尝试在安装了依赖项的服务器上完成这一切当然没有问题。我现在明白了,这是不可能的。如果你能在本地运行应用程序,你怎么能进行任何开发呢?是的,我解决了依赖性问题。不是我真的不能,而是我还没有做。在我看来,我可以在服务器上运行迁移似乎是合理的。不知道为什么它仍然不起作用,但还好。我不在本地服务器上运行它的原因是,我正在使用一个第三方API,它重定向到一个公共URL进行身份验证,所以在我的本地机器上这是不起作用的。但无论如何,谢谢你,我只是在本地做了makemigrations并推送了它们。然后在服务器上进行迁移@DanielRoseman@jeffery_the_wind你能回答一个非常类似的问题吗?是的,自从发帖以来,我已经学会了如何更好地使用heroku。您永远不需要在heroku服务器上进行迁移。您应该始终在本地
    makemigrations
    ,然后将其推送到服务器。您只需在服务器上迁移
    。谢谢!我没有意识到heroku的命令在每一天都持续存在dyno@Dishant查夫拉:你能回答一个类似的问题吗?