Use new transaction API in syncdb section of migrate
This commit is contained in:
parent
6b39010d57
commit
c1ed21fa9e
|
@ -12,7 +12,7 @@ from django.db.migrations.executor import MigrationExecutor
|
||||||
from django.db.migrations.loader import AmbiguityError
|
from django.db.migrations.loader import AmbiguityError
|
||||||
from django.utils.datastructures import SortedDict
|
from django.utils.datastructures import SortedDict
|
||||||
from django.utils.importlib import import_module
|
from django.utils.importlib import import_module
|
||||||
from django.utils.module_loading import module_has_submodule, import_by_path
|
from django.utils.module_loading import module_has_submodule
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
|
@ -162,7 +162,7 @@ class Command(BaseCommand):
|
||||||
# Create the tables for each model
|
# Create the tables for each model
|
||||||
if self.verbosity >= 1:
|
if self.verbosity >= 1:
|
||||||
self.stdout.write(" Creating tables...\n")
|
self.stdout.write(" Creating tables...\n")
|
||||||
with transaction.commit_on_success_unless_managed(using=connection.alias):
|
with transaction.atomic(using=connection.alias, savepoint=False):
|
||||||
for app_name, model_list in manifest.items():
|
for app_name, model_list in manifest.items():
|
||||||
for model in model_list:
|
for model in model_list:
|
||||||
# Create the model's database table, if it doesn't already exist.
|
# Create the model's database table, if it doesn't already exist.
|
||||||
|
@ -181,6 +181,10 @@ class Command(BaseCommand):
|
||||||
for statement in sql:
|
for statement in sql:
|
||||||
cursor.execute(statement)
|
cursor.execute(statement)
|
||||||
tables.append(connection.introspection.table_name_converter(model._meta.db_table))
|
tables.append(connection.introspection.table_name_converter(model._meta.db_table))
|
||||||
|
|
||||||
|
# We force a commit here, as that was the previous behaviour.
|
||||||
|
# If you can prove we don't need this, remove it.
|
||||||
|
transaction.set_dirty(using=connection.alias)
|
||||||
|
|
||||||
# Send the post_syncdb signal, so individual apps can do whatever they need
|
# Send the post_syncdb signal, so individual apps can do whatever they need
|
||||||
# to do at this point.
|
# to do at this point.
|
||||||
|
|
Loading…
Reference in New Issue