提问人:Fahim Ahmed 提问时间:6/29/2017 最后编辑:AlasdairFahim Ahmed 更新时间:6/29/2017 访问量:192
架构迁移针对应用程序中的现有列运行
Schemamigration runs for existing columns in the application
问:
假设我有一个名为 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 表的整个应用程序运行架构迁移。
请指教
答: 暂无答案
评论