Opened 7 years ago
Last modified 7 years ago
#30189 closed Bug
sqlmigrate wraps it's outpout in BEGIN/COMMIT even if the database doesn't support transactional DDL — at Initial Version
| Reported by: | Simon Charette | Owned by: | nobody |
|---|---|---|---|
| Component: | Migrations | Version: | dev |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | yes | Needs documentation: | yes |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | yes | UI/UX: | no |
Description
The migration executor only adds the outer BEGIN/COMMIT if the migration is atomic and the schema editor can rollback DDL but the current sqlmigrate logic only takes migration.atomic into consideration.
The issue change be addressed by
- Changing
sqlmigrateassignment ofself.output_transactionto considerconnection.features.can_rollback_ddlas well. - Adding a test in
tests/migrations/test_commands.pybased on an existing test for non-atomic migrations that mocksconnection.features.can_rollback_ddltoFalseinstead of overdiddingMIGRATION_MODULESto point to a non-atomic migration.
I marked the ticket as easy picking because I included the above guidelines but feel free to uncheck it if you deem it inappropriate.
Note:
See TracTickets
for help on using tickets.