Django在每次迁移后发现模型不存在的更改

时间:2017-08-21 16:46:35

标签: django django-models django-migrations

运行python manage.py migrate后,Django将一直返回:

Running migrations: No migrations to apply. Your models have changes that are not yet reflected in a migration, and so won't be applied. Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.

嗯,这很有趣,我不记得做出改变。 python manage.py makemigrations --dry-run --verbosity=3

Generated by Django 1.11 on 2017-0x-xx xx:xx
from __future__ import unicode_literals

from django.db import migrations, models
import django_cryptography.fields


class Migration(migrations.Migration):

    dependencies = [
       ('myApp', '0019_auto_xxxxxxx_xx'),
    ]

    operations = [
        migrations.AlterField(
            model_name='myModel',
            name='encrypted_field',
            field=django_cryptography.fields.encrypt(models.CharField(verbose_name=models.CharField(verbose_name=models.CharField(max_length=50, verbose_name='Encrypted Field')))),
    ),
        migrations.AlterField(
            model_name='myModel',
            name='second_encrypted_field',
            field=django_cryptography.fields.encrypt(models.CharField(verbose_name=models.CharField(verbose_name=models.CharField(max_length=50, verbose_name='Second encrypted field')))),
    ),
]

那没关系,但完全相同的AlterField()在0018_auto中运行。我已经在几个系统上对其进行了测试,甚至试图将这些迁移用于实际和应用但是,但警告仍然会在0020_auto中重新出现。

myModel.__str__确实引用了其中一个加密字段,我认为这些字段会导致迁移中的递归。不过,我无法理解为什么这会让Django继续捡起它们。

知道可能导致这种情况的原因是什么?这是一个错误吗?与django_cryptography的性质有关的东西?还有别的吗?

0 个答案:

没有答案