我有一个使用django restframework的python项目。它最初是使用sqlite - 数据库。现在我把它改成了postgresql。所有数据都被替换,项目现在使用postgresql数据库。一切正常。
但是现在我不得不在我的python项目中改变一些东西。我不得不删除模型中的一些字段(称为' product')。所以在我之后,我在浏览器中检查了我的django restframework并且该字段已经消失。所以这个领域不再存在于我的后端。一切都很好,但当我尝试添加新产品时,我收到了一个错误。因为我的数据库仍然希望我填写已删除的字段。
该字段仍在我的数据库中,但未在0001_initial.py 中进行描述。所以我认为makemigrations完成了它的工作,但迁移失败了?
我已经做了以下事情:
math.h
还
python manage.py makemigrations
python manage.py migrate
我真的不知道原因。因为在我的项目和initial.py中删除了该字段,所以我认为迁移会检测到它并更改数据库。
答案 0 :(得分:1)
迁移是累积记录。初始迁移描述了最初创建数据库时的状态。后续更改由进一步的迁移文件描述,每个迁移文件都会将您的数据库带到创建迁移时的状态。
因此,当您运行makemigrations
时,系统会创建一个迁移0002,其中包含删除字段的代码。