Remove checking if DB engine supports transaction during import #559
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR #480 introduced proper handling of transactions during import, but with additional check if DB engine does support transactions.
When transaction is already in atomic block (for example by using
ATOMIC_REQUESTS
in Django DB conf) andimport_data
performs check if DB support transaction, in some cases (like MySQL), this check tries to callset_autocommit
, which is forbidden in atomic block. This fix it by not usingsupports_transaction
at all (it's not used in whole Django at all either, besides tests) - previously user receivesImproperlyConfigured
exception - nowtransaction.atomic
will go through silently (for example in MyISAM case) or raise another exception to user, but it'll work for all engines that support DB transactions when transaction block is already entered.