I run python manage.py makemigrations
我得到:
未检测到任何变化
然后,python manage.py migrate
我得到:
无需申请迁移。
然后,我尝试将更改推送到生产中:
git推送heroku大师
一切都是最新的
然后,在生产中,我重复该命令:
heroku 运行 python manage.py migrate
无需申请迁移。
以防万一,我跑了makemigrations
生产中:
heroku run python manage.py makemigrations
No changes detected
为什么然后我得到一个
ProgrammingError at ....
column .... does not exist
“未检测到更改”意味着数据库与代码一致。
我该如何调试这个?¡
我遇到了同样的问题(列不存在)但是当我尝试运行时migrate
不与makemigrations
(我相信这是同一个问题)
这是解决这个问题的方法:
编号 |应用程序 |名称 |应用
--+------+--------+---------+
SELECT * FROM django_migrations;
-
删除该应用程序的迁移行(您可以按 id 或按应用程序删除,应用程序不要忘记“引号”):
DELETE FROM django_migrations WHERE app='yourapp';
-
注销并仅运行您的迁移(在您的情况下可能运行 makemigrations ):
python manage.py migrate --settings=your.settings.module_if_any
注意:在您的情况下,可能不必删除该应用程序的所有表,也不必删除所有迁移,而只需删除导致问题的模型的表。
我希望这能有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)