Skip to content

Commit 748d8d4

Browse files
authored
Merge pull request #6 from flea89/update-transaction
Newer version of gcloudc use django transaction
2 parents 38cfd77 + 5160941 commit 748d8d4

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

massmigration/utils/transaction.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# Third party
22
from django.conf import settings
33
from django.db import router, transaction as django_transaction
4-
from gcloudc.db import transaction as datastore_transaction
54

65
# Mass Migration
76
from massmigration.models import MigrationRecord
@@ -13,8 +12,15 @@
1312
# That said, should you be allowed to run the same migration on two different databases?
1413

1514

16-
def get_transaction(db_alias):
17-
engine = settings.DATABASES[db_alias]["ENGINE"]
18-
if engine == "gcloudc.db.backends.datastore":
19-
return datastore_transaction
20-
return django_transaction
15+
def get_transaction():
16+
connection = router.db_for_write(MigrationRecord)
17+
engine = settings.DATABASES[connection]["ENGINE"]
18+
transaction = django_transaction
19+
if engine.startswith("gcloudc.db.backends"):
20+
try:
21+
from gcloudc.db import transaction as gcloudc_transaction
22+
transaction = gcloudc_transaction
23+
except ImportError:
24+
# Newer versions of gcloudc use Django transactions.
25+
pass
26+
return transaction

0 commit comments

Comments
 (0)