为什么django 1.7会为字段选择中的更改创建迁移?

Jam*_*Lin 26 migration django django-migrations

我在1.7版本上观察到了这种行为,但在以前的版本中没有使用南迁移.

例如.

class RedemptionCode(models.Model):
    EXPIRE_OPTIONS = (
        ('1 week', '1 Week'),
    )

    expire_option = models.CharField(max_length=255, choices=EXPIRE_OPTIONS)
Run Code Online (Sandbox Code Playgroud)

当我添加更多选项时:

EXPIRE_OPTIONS = (
    ('1 week', '1 Week'),
    ('2 weeks', '2 Weeks'),
    ('1 month', '1 Month'),
    ('1 day', '1 Day'),
)
Run Code Online (Sandbox Code Playgroud)

并运行makemigrations,它为它创建一个迁移,来自south后台我认为应该说没有检测到任何变化,因为它不会影响数据库模式.我不知道它的用途是什么:

class Migration(migrations.Migration):

    dependencies = [
        ('credits', '0001_initial'),
    ]

    operations = [
        migrations.AlterField(
            model_name='redemptioncode',
            name='expire_option',
            field=models.CharField(max_length=255, choices=[('1 week', '1 Week'), ('2 weeks', '2 Weeks'), ('1 month', '1 Month'), ('1 day', '1 Day')]),
        ),
    ]
Run Code Online (Sandbox Code Playgroud)

Jam*_*Lin 31

提高票后因重复而关闭,终于找到了答案:

这是设计的.有几个原因,尤其是对我来说,历史点上的数据标记需要完全准确地表示模型,包括所有选项,而不仅仅是那些影响数据库的选项.

参考: