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
在⬢glacial-beach-50253上运行python manage.py makemigrations main... up, run.8354 'main'的迁移:
0001_initial.py: - 创建InstagramPhotos模型
看起来还不错,对吧?然后我尝试执行migrate
,如您所知,这将实际在数据库中创建表:
heroku run python manage.py migrate
在 ⬢ glacial-beach-50253 上运行 python manage.py migrate... 执行7556项操作:应用所有迁移:auth、contenttypes、admin、sessions 迁移正在运行:没有可应用的迁移。 你的模型有更改,但尚未反映在迁移中,因此不会应用这些更改。运行'manage.py makemigrations'来创建新的迁移,然后重新运行'manage.py migrate'来应用它们。无论我试过多少次重新运行makemigrations和migrate,似乎仍然不能识别它。除了无法在Heroku服务器上以这种方式操作外,我不确定为什么会发生这种情况?我一定需要在本地执行makemigrations并推送吗?
FYI,我只定义了默认的sqlite3 DB在settings.py中。