0
我正在使用Django 1.9.7和MySQL。Django迁移部分完成
我有一个包含多个操作的迁移文件。
migrations.RemoveField(
model_name='team',
name='country',
),
migrations.AddField(
model_name='team',
name='description',
field=models.CharField(blank=True, max_length=200, null=True),
),
migrations.AlterField(
model_name='team',
name='iso_country',
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='sys_models.Country', verbose_name='Country'),
),
现在我的印象是,如果这些语句中的一个失败,整个迁移将回滚作为一个更大的交易的一部分。那是对的吗?
我没有看到这种行为,相反,我发现某些DDL语句在迁移期间可能会成功,而另一个失败。另外,我认为订单将自上而下应用,这是否正确?我不一定在Django迁移中看到这种行为。
这就是我所关心的。感谢您的确认。我在最后半小时制定了一个计划,我认为订单问题仅适用于第一个操作是RunPython操作(数据迁移)的迁移,该操作未指定为原子操作。所以即使失败了,迁移中的DDL语句也会被部分处理。 – samazi