django makemigrations和在heroku服务器上的migrate不创建表

yv5phkfx  于 2022-11-13  发布在  Go
关注(0)|答案(5)|浏览(129)

Python版本2.7 Django版本1.9.7
我在heroku上创建了一个Django应用程序。我无法将heroku服务器正确地迁移到migrate。过去我在本地完成所有的makemigrations,然后将它们推送到服务器。过去这样做是有效的。现在我想我会选择在服务器端完成所有的迁移,因为我根本不在本地运行这个应用程序。
我刚刚在models.py中为app 'main'创建了一个新模型:

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 main on glacial-beach-50253... up,run. 8354“main”上的迁移:

0001初始值. py:- 创建模型Instagram照片

看起来没问题吧?然后我尝试migrate,如您所知,它实际上会在DB中创建表:

heroku run python manage.py migrate

运行python manage.py在glacial-beach-50253上迁移... up,run。7556要执行的操作:应用所有迁移:身份验证、内容类型、管理、会话运行迁移:**没有要应用的迁移。**您的模型具有尚未反映在迁移中的更改,因此不会应用这些更改。请运行“manage.py makemigrations”以进行新的迁移,然后重新运行“manage.py migrate”以应用这些更改。
无论我试着重新运行makemigrationsmigrate多少次,它似乎仍然没有拿起它。不知道为什么会发生这种情况,除了它只是不可能在heroku服务器上操作这种方式?我一定要做makemigrations本地和推?
仅供参考,我只是在settings.py中定义了默认的sqlite3 DB。

eqqqjvef

eqqqjvef1#

我也有类似的问题。
我刚ssh进了龙六的测功器:heroku run bash(从您的heroku应用程序文件夹ofc)
然后运行所有的迁移和makemigration命令与createsuperuser如果需要。工程与sqlite和postgre为我。

1dkrff03

1dkrff032#

运行makemigrationsmigrate,然后推送到远程存储库。

ntjbwcob

ntjbwcob3#

1.在本地运行这些命令
pythonmanage.py,,,Python管理器. py迁移
2.提交代码
3.把它推给Heroku大师
1.运行heroku run python manage.py makemigrations,,,, heroku run python manage.py migrate
您的问题应该已解决

wqsoz72f

wqsoz72f4#

我在部署到Heroku时两次遇到同样的错误。在列出app目录下的文件时,我发现db.sqlite3文件丢失了,这是django创建sql表所必需的。虽然它会自动在本地创建文件,但在运行migrate命令时,它并没有在Heroku上创建。
此处有两个选项:
1.在heroku上的app目录下创建db.sqlite3文件
1.在本地运行“python manage.py migrate”以创建db.sqlite3并将其推送到heroku存储库

g6ll5ycj

g6ll5ycj5#

最近我遇到了一个类似的错误,最后发现我错误地忽略了init.py文件。如果migrations文件夹中没有这些文件,migrate命令就无法找到迁移文件并执行它们。

相关问题