假设我有一个名为animals的Django应用程序。该应用程序有一个名为“哺乳动物”的模型如下
class Mammal(models.Model)
name = models.CharField(max_length=256)
is_active = models.BooleanField(default=True)
date_added = models.DateTimeField(auto_now_add=True)
date_modified = models.DateTimeField(auto_now=True)
我为上述模型运行模式迁移
./manage.py schemamigration mammal --initial
创建初始迁移文件,然后按照以下方式迁移它
./manage.py migrate mammal
现在我更新模型并添加一个字段mammal_type,如下所示
class Mammal(models.Model)
name = models.CharField(max_length=256)
mammal_type = models.CharField(max_length=63, choices=TYPE_CHOICES, default=TYPE_MAMMAL)
is_active = models.BooleanField(default=True)
date_added = models.DateTimeField(auto_now_add=True)
date_modified = models.DateTimeField(auto_now=True)
我再次为上述模型运行模式迁移
./manage.py schemamigration mammal --auto
./manage.py migrate mammal
一切都很顺利。现在问题来了。我添加另一个字段灭绝如下
class Mammal(models.Model)
name = models.CharField(max_length=256)
mammal_type = models.CharField(max_length=63, choices=TYPE_CHOICES, default=TYPE_MAMMAL)
extinct = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
date_added = models.DateTimeField(auto_now_add=True)
date_modified = models.DateTimeField(auto_now=True)
我运行架构迁移
./manage.py schemamigration mammal --auto
新的迁移文件包含先前添加的mammal_type字段的模式迁移,该字段实际上不应存在。我不确定为什么会这样。
我尝试过运行特定于字段的模式迁移,这允许我只为该字段添加迁移,但是当涉及到动态创建M2M表时,特定于字段的模式迁移无济于事。我需要为整个应用程序运行模式迁移,以便创建M2M表。
请咨询