0

这是我的迁移文件,名为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 的新手。任何帮助将不胜感激。

4

3 回答 3

0

从您的DB-Models中,您可以看到一个名为django-migrations. 在这里,您将找到所有已应用的迁移。可能的原因之一是您手动删除了一些迁移文件,但不幸的是,引用保留在django-migrations表中。一种可能的解决方案是删除那些应用迁移并python manage.py migrate再次安全运行命令。

注意:不要删除任何已经在模型中产生物理影响的迁移。我想说的是,模型数据可用于这些迁移效果。如果您对此不完全确定,最好使您的 dB 变哑,然后再执行此操作。

于 2019-02-19T06:27:25.647 回答
0

确保运行migrate命令并检查数据库是否有更新。

于 2019-02-22T02:26:40.353 回答
-1

有时模型中应用的更改可能不会反映在数据库中。最简单的方法是删除迁移文件夹中的迁移文件(init .py 除外),然后再次运行python manage.py makemigrations. 或者您可以south migrations用于有效地反映您在数据库中的迁移。

south migrations可以在以下位置找到 文档: https ://south.readthedocs.io/en/latest/

于 2019-02-19T06:10:53.707 回答