这是我的迁移文件,名为0004_auto_20190218_1614.py
。我运行了makemigrations
和migration
命令。列的所有其他添加和删除操作都是成功的,但是在这种情况下,如果我添加了外键,则更改未反映在数据库中。当我尝试插入记录时。
# Generated by Django 2.1.5 on 2019-02-18 10:44`
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('projectName', '0003_auto_20190218_1604'),
]
operations = [
migrations.AlterField(
model_name='projectdetails',
name='userdetails',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='projectName.UserDetails'),
),
]
我收到此异常
_mysql_connector.MySQLInterfaceError: Unknown column 'userdetails_id' in 'field list'
然后是这个
During handling of the above exception, another exception occurred:
AttributeError: 'NoneType' object has no attribute 'strip'
我是Django的新手。任何帮助将不胜感激。
答案 0 :(得分:0)
在您的DB-Models
中,您可以看到名为django-migrations
的表。在这里,您将找到所有已应用的迁移。可能的原因之一是您手动删除了一些迁移文件,但不幸的是该引用保留在django-migrations
表中。一种可能的解决方案是删除那些应用的迁移,然后再次安全运行python manage.py migrate
命令。
答案 1 :(得分:0)
确保您运行migrate
命令并检查数据库中的更新。
答案 2 :(得分:-1)
有时应用的模型更改可能不会反映在数据库中。最简单的方法是删除迁移文件夹( init .py除外)中的迁移文件,然后再次运行python manage.py makemigrations
。
或者,您可以使用south migrations
来有效地反映您在数据库中的迁移。
south migrations
的文档可在以下位置找到:
https://south.readthedocs.io/en/latest/