如果在“模型”字段上更改了空值和空白值,是否需要进行迁移?

joa*_*iro 3 python django django-models

我有以下型号

@python_2_unicode_compatible
class Booking(models.Model):
    session = models.ForeignKey(verbose_name=_('Session'), to=Session, default=None, null=False, blank=False)
    quantity = models.PositiveIntegerField(verbose_name=_('Quantity'), default=1, null=False, blank=False)
    price = models.DecimalField(verbose_name=_('Price'), max_digits=10, decimal_places=2,
                                default=None, null=False, blank=False)
    name = models.CharField(verbose_name=_('Name'), max_length=100, default=None, null=False, blank=False)
    email = models.EmailField(verbose_name=_('Email'), default=None, null=True, blank=True)
    phone_number = models.CharField(verbose_name=_('Phone Number'), max_length=30, default=None, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

说我需要更改我的电子邮件和电话号码字段。我希望他们有null=Falseblank=False。这些变更是否需要新的迁移?

Dan*_*man 5

是的,他们愿意。null=False需要更改数据库架构本身;blank=False不需要,但是Django仍然需要迁移,以便迁移运行器的模型状态内部图是最新的。


小智 5

当然。要检查它,您可以运行python manage.py makemigrations --dry-run( --dry-run 不会保存新的迁移文件,但会显示是否有必要)