mirror of
https://github.com/django/django.git
synced 2025-07-17 16:19:12 +00:00
[3.1.x] Fixed #26962 -- Doc'd running migrations in transactions.
Backport of 9ca22c7733efeeb140b75585c6387ef2cb861d19 from master
This commit is contained in:
parent
b3d667f20d
commit
62f6ab2c4a
@ -169,6 +169,27 @@ migrations for you. If not, you'll have to go in and modify the migrations
|
|||||||
yourself - don't worry, this isn't difficult, and is explained more in
|
yourself - don't worry, this isn't difficult, and is explained more in
|
||||||
:ref:`migration-files` below.
|
:ref:`migration-files` below.
|
||||||
|
|
||||||
|
Transactions
|
||||||
|
============
|
||||||
|
|
||||||
|
On databases that support DDL transactions (SQLite and PostgreSQL), all
|
||||||
|
migration operations will run inside a single transaction by default. In
|
||||||
|
contrast, if a database doesn't support DDL transactions (e.g. MySQL, Oracle)
|
||||||
|
then all operations will run without a transaction.
|
||||||
|
|
||||||
|
You can prevent a migration from running in a transaction by setting the
|
||||||
|
``atomic`` attribute to ``False``. For example::
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
atomic = False
|
||||||
|
|
||||||
|
It's also possible to execute parts of the migration inside a transaction using
|
||||||
|
:func:`~django.db.transaction.atomic()` or by passing ``atomic=True`` to
|
||||||
|
:class:`~django.db.migrations.operations.RunPython`. See
|
||||||
|
:ref:`non-atomic-migrations` for more details.
|
||||||
|
|
||||||
Dependencies
|
Dependencies
|
||||||
============
|
============
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user