django - python manage.py migrate 不对postgres数据库做任何改动

标签 django postgresql openshift django-migrations

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

class FeedBack(models.Model):
    feedback = models.CharField(max_length=600)
    user = models.ForeignKey(User,default="")

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

然后我跑

python manage.py makemigrations

python 管理.py 迁移

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

列 IngressoMonitor_feedback.email 不存在

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

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

最佳答案

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

如果您最近更改了 Django 版本,这 link可能对你有用。但无论如何都要试一试,在这种情况下按应用程序进行迁移:

python manage.py makemigrations app_name

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

关于django - python manage.py migrate 不对postgres数据库做任何改动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31715238/

相关文章:

css - Openshift - 尽管进行了 Assets 预编译,但 CSS 并未被刷新

docker - 在CentOS上安装时找不到Ceph

sql - 连接的行估计不正确

mysql - 我读到的关于 "that bad"的一致性/数据丢失/查询优化问题是什么?

python - 在 openshift 上启动 Celery

python - 从 django 执行不能被 web 服务器中断的后台进程

postgresql - 如何在 postgres 中对现有表进行分区?

django - 如何将类属性添加到 ModelForm

python - 如何使用 coverage.py 在 Django-Python 中实现像 Ruby-Rails 这样的覆盖率报告?

python - 为什么空闲 Python 线程消耗高达 90% 的 CPU?