阅读(4316) (0)

Django4.0 迁移-事务

2022-03-16 16:04:46 更新

在支持 DDL 事务的数据库上(SQLite 和 PostgreSQL),所有的迁移操作默认都会在一个事务中运行。相反,如果一个数据库不支持 DDL 事务(如 MySQL、Oracle),那么所有的操作将在没有事务的情况下运行。

你可以通过将 ​atomic ​属性设置为 ​False ​来防止迁移在事务中运行。例如:

from django.db import migrations

class Migration(migrations.Migration):
    atomic = False

也可以使用 ​atomic()​ 或者通过传递 ​atomic=True​ 到 ​RunPython ​来在事务中执行部分迁移。