summaryrefslogtreecommitdiff
path: root/tests/migrations/test_optimizer.py
AgeCommit message (Collapse)Author
2018-07-19Fixed #27731 -- Implemented CreateModel/AlterFooOperation reduction.Simon Charette
This should alleviate the side effects of disabling the AlterFooOperation reduction with RemoveField to fix refs #28862 during migration squashing because CreateModel can perform a reduction with RemoveField. Thanks Nick Pope for the review.
2018-07-19Fixed #28862 -- Disabled optimization of AlterFooTogether and RemoveField.Simon Charette
AlterFooTogether operations cannot be swapped with RemoveField operations on the same model as they could be removing the the same field as well. Since AlterFooTogether operations don't track what their previous value was, it's impossible to determine whether or not the optimization is safe so the only way to proceed is to disable the optimization. Thanks Ramiro Morales for the in-depth analysis of the issue. Refs #24828
2018-07-11Fixed #27845 -- Allowed both right and left optimizations of operations.Simon Charette
Thanks Raphael Gaschignard for the suggestion.
2018-07-11Fixed #26720 -- Prevented invalid CreateModel optimizations of related fields.Simon Charette
2018-07-11Fixed #27768 -- Allowed migration optimization of CreateModel order.Simon Charette
Thanks Ed Morley from Mozilla for the tests.
2018-07-10Refs #22875 -- Fixed an optimizer test to use a valid scenario.Simon Charette
An explicit intermediary many-to-many relationship must declare forward and reverse foreign keys. The original issue was in the autodetector as these operations shouldn't have been generated in this order in the first place which is tested by AutodetectorTests.test_create_with_through_model.
2017-12-28Removed unnecessary trailing commas and spaces in various code.Mariusz Felisiak
2017-01-25Simplified tests with assertDoesNotOptimize().Ed Morley
2017-01-18Refs #23919 -- Removed encoding preambles and future importsClaude Paroz
2017-01-10Fixed #27717 -- Allowed migration optimization across AlterModelOptions.Ed Morley
2016-11-10Refs #27392 -- Removed "Tests that", "Ensures that", etc. from test docstrings.za
2016-06-06Fixed #26710 -- Made CreateModel.references_model() take app_label into account.Sergey Fedoseev
2016-04-27Fixed #26521 -- Validated CreateModel bases, fields and managers for duplicates.James Robert
2016-01-23Fixed #24109 -- Allowed RunSQL and RunPython operations to be elided.Simon Charette
Thanks to Markus Holtermann and Tim Graham for their review.
2015-09-12Fixed #23395 -- Limited line lengths to 119 characters.Dražen Odobašić
2015-07-27Fixed #21127 -- Started deprecation toward requiring on_delete for ↵Flavio Curella
ForeignKey/OneToOneField
2015-06-16Fixed #24828 -- Allowed migration optimization across AlterFooTogetherMarkus Holtermann
The idea behind this change is, that AlterUniqueTogether, AlterIndexTogether and AlterOrderWithRespectTo can always be moved after an Add/Alter/Rename/RemoveField operation if they don't refer to the respective field and are not empty sets / None. Combined with the optimizations of duplicate AlterUniqueTogether, AlterIndexTogether, and AlterOrderWithRespectTo operations from 128caa1e16ec2627737748f75c8e55600a3df97f, these operations are optimized in a later round of the optimizer. Thanks Tim Graham for the review.
2015-06-14Optimized duplicate AlterModelTable/AlterFooTogether/AlterOWRTMarkus Holtermann
Thanks Andrew Godwin for the review.
2015-06-14Took AlterOrderWithRespectTo into account when optimizing migrationsMarkus Holtermann
Thanks Andrew Godwin for the review.
2015-05-20Refs #24652 -- Used SimpleTestCase where appropriate.Simon Charette
2015-02-06Sorted imports with isort; refs #23860.Tim Graham
2015-01-07Refs #23822 -- Made MigrationOptimizer aware of model managersMarkus Holtermann
2014-11-20Fixed #23844 -- Used topological sort for migration operation dependency ↵Patryk Zawadzki
resolution. This removes the concept of equality between operations to guarantee compatilibity with Python 3. Python 3 requires equality to result in identical object hashes. It's impossible to implement a unique hash that preserves equality as operations such as field creation depend on being able to accept arbitrary dicts that cannot be hashed reliably. Thanks Klaas van Schelven for the original patch in 13d613f80011852404198dfafd1f09c0c0ea42e6.
2014-06-22Fixed #22875: Optimizer did not take through= into account.Andrew Godwin
2014-05-15Harmonized some PEP 0263 coding preamblesClaude Paroz
2013-11-06flake8 fixesAlex Gaynor
2013-11-06Massive migration optimiser improvements + RenameModel opnAndrew Godwin
2013-11-03Fixed all E251 violationsAlex Gaynor
2013-11-02Fixed #21302 -- Fixed unused imports and import *.Tim Graham
2013-10-16Improve migration optimizer to be able to optimize through other opsAndrew Godwin
2013-10-02Initial version of MigrationOptimizer and testsAndrew Godwin