python manage.py migrate 不会在 postgres 数据库中做任何更改

Abe*_*sen 5 django postgresql openshift django-migrations

这似乎是一个简单的问题,我不确定我做错了什么。例如,如果我想通过更改在 models.py 中的一个类中添加一个新字段:

class FeedBack(models.Model):
    feedback = models.CharField(max_length=600)
    user = models.ForeignKey(User,default="")
Run Code Online (Sandbox Code Playgroud)

到

class FeedBack(models.Model):
    feedback = models.CharField(max_length=600)
    email = models.CharField(max_length=100)
    user = models.ForeignKey(User,default="")
Run Code Online (Sandbox Code Playgroud)

然后我跑

python manage.py makemigrations

python manage.py 迁移

一切看起来都很好,但实际上并没有在数据库中进行任何更改。尝试查看反馈表时,我收到以下异常:

列 IngressoMonitor_feedback.email 不存在

还在表上使用 psql \d+ 显示尚未添加电子邮件

现在我只能使用 psql 来添加和更改表,但我更喜欢将它写在 models.py 中,因为这对我来说似乎容易得多。

Wan*_*der 3

确保包含该 models.py 文件的应用程序包含在项目设置文件的 INSTALLED_APPS 中。此外,除非您确定自己知道自己在做什么,否则请勿触摸应用程序迁移文件夹下的文件。另请确保设置文件中指定的数据库帐户具有必要的权限。

如果您最近更改了 Django 版本,此链接可能对您有用。但无论如何,请尝试一下,在这种情况下对每个应用程序进行迁移:

python manage.py makemigrations app_name
Run Code Online (Sandbox Code Playgroud)

如果一切都失败了,只需删除数据库的表,然后从头开始重新生成所有内容。但是,如果在某个时候,您弄乱了任何迁移文件,您可能需要在执行 makemigrations 之前删除所有这些文件,以确保您拥有一套新的、可工作的迁移文件,manage.py 可以处理它们。