Django4 中文入门教程 Django4.0 迁移-事务

2024-02-25 开发教程 Django4 中文入门教程 匿名 6

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

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

from django.db import migrations
class Migration(migrations.Migration):
atomic = False

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