Simon Charette
ed7898e1b5
Fixed #28862 -- Disabled optimization of AlterFooTogether and RemoveField.
...
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-19 17:06:01 -04:00
Simon Charette
8a03445885
Removed in_between from Operation.reduce()'s signature.
...
It isn't used since FieldOperation.references_model() takes into
account models referenced by the field it's operating on.
2018-07-11 10:49:50 -04:00
Simon Charette
0025dd5eb4
Allowed RemoveField operations to be optimized through.
2018-07-11 10:49:50 -04:00
Simon Charette
50b8c98a0f
Relaxed FieldOperation.references_field remote field checking.
2018-07-11 10:49:50 -04:00
Simon Charette
013bcf57d5
Introduced ModelTuple to remove migrations boilerplate.
2018-07-11 10:49:50 -04:00
Simon Charette
ad82900ad9
Fixed #26720 -- Prevented invalid CreateModel optimizations of related fields.
2018-07-11 10:49:50 -04:00
Simon Charette
a97845a823
Fixed #27768 -- Allowed migration optimization of CreateModel order.
...
Thanks Ed Morley from Mozilla for the tests.
2018-07-11 10:49:50 -04:00
Ian Foote
952f05a6db
Fixed #11964 -- Added support for database check constraints.
2018-07-10 15:32:33 -04:00
Jeff
fcc4e251db
Fixed #29000 -- Fixed RenameModel's renaming of a M2M column when run after RenameField.
...
Regression in 45ded053b1
.
2018-06-15 11:51:09 -04:00
Simon Charette
dcdd219ee1
Fixed #25817 -- Made RenameField repoint to_field/to_fields references.
...
Also updated the autodetector to assume the RenameField operation will
perform the required repointing.
2017-12-30 14:59:22 -05:00
Simon Charette
2faeb21d2f
Moved _get_model_tuple() to the base Operation class.
...
This allows field and special operations to use this logic.
2017-12-30 14:50:43 -05:00
Mariusz Felisiak
83a36ac49a
Removed unnecessary trailing commas and spaces in various code.
2017-12-28 21:07:29 +01:00
Nick Pope
d13a9e44de
Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking.
2017-12-11 07:08:45 -05:00
Tim Graham
c3e0adcad8
Fixed #28305 -- Fixed "Cannot change column 'x': used in a foreign key constraint" crash on MySQL with a sequence of AlterField or RenameField operations.
...
Regression in 45ded053b1
.
2017-12-01 19:07:46 -05:00
Дилян Палаузов
23bf4ad87f
Fixed #28795 -- Removed 'not in' checks and used dict.setdefault().
2017-11-14 10:52:52 -05:00
Simon Charette
5cbcb36839
Fixed #28350 -- Fixed UnboundLocalError crash in RenameField with nonexistent field.
...
Thanks Tim for the review.
2017-06-30 12:50:37 -04:00
chillaranand
451b585c2f
Refs #27914 -- Used __qualname__ in model operations' deconstruct().
2017-06-14 10:10:22 -04:00
Jon Dufresne
2c69824e5a
Refs #23968 -- Removed unnecessary lists, generators, and tuple calls.
2017-06-01 19:08:59 -04:00
Ian Foote
63afe3a2bf
Fixed #28043 -- Prevented AddIndex and RemoveIndex from mutating model state.
2017-05-01 09:32:44 -04:00
Anton Samarchyan
60e52a047e
Refs #27656 -- Updated django.db docstring verbs according to PEP 257.
2017-02-28 09:17:27 -05:00
chillaranand
d6eaf7c018
Refs #23919 -- Replaced super(ClassName, self) with super().
2017-01-25 12:23:46 -05:00
Simon Charette
cecc079168
Refs #23919 -- Stopped inheriting from object to define new style classes.
2017-01-19 08:39:46 +01:00
Claude Paroz
7b2f2e74ad
Refs #23919 -- Removed six.<various>_types usage
...
Thanks Tim Graham and Simon Charette for the reviews.
2017-01-18 20:18:46 +01:00
Claude Paroz
d7b9aaa366
Refs #23919 -- Removed encoding preambles and future imports
2017-01-18 09:55:19 +01:00
Markus Holtermann
46e0335583
Refs #27666 -- Added ProjectState.reload_models().
2017-01-17 08:12:53 -05:00
Markus Holtermann
45ded053b1
Fixed #27666 -- Delayed rendering of recursivly related models in migration operations.
2017-01-17 08:12:52 -05:00
Ed Morley
7156a6c9c4
Fixed #27717 -- Allowed migration optimization across AlterModelOptions.
2017-01-10 18:38:48 -05:00
Simon Charette
ecd625e830
Fixed #27310 -- Stopped rendering apps in RenameModel.state_forwards.
...
Thanks Tim for the review.
2016-12-10 10:19:06 -05:00
Simon Charette
040bd7c938
Fixed #27279 -- Fixed a migration performance regression related to RenameModel operations.
...
Thanks Trac alias mtomiyoshi for the report, Marten Kenbeek for the initial
patch and Tim for the review.
2016-10-04 08:35:15 -04:00
Tim Graham
a44fc008c4
Fixed #27217 -- Fixed crash in CreateModel optimization with models that use mixins.
...
Thanks Simon Charette for review.
2016-09-28 10:04:52 -04:00
Akshesh
a71724cd04
Refs #26709 -- Added index name to AddIndex.describe().
2016-08-16 09:11:33 -04:00
Akshesh
b92c6b7d56
Refs #26709 -- Replaced Index.get_name() with set_name_with_model().
...
This removes the dependency of the Index class on its 'model'
attribute.
2016-08-02 14:21:41 -04:00
premanand lakshmanan
5da7e3f7fd
Fixed #26114 -- Fixed AlterModelTable.describe() if db_table is None.
2016-07-28 10:33:14 -04:00
Akshesh
fc3ac65735
Refs #26709 -- Checked allow_migrate_model() in Add/RemoveIndex operations.
2016-07-07 10:37:39 -04:00
Akshesh
52442898e7
Refs #26709 -- Added 'model' argument to SchemaEditor.add/remove_index()
...
This removes the dependency of the Index class on its model attribute
when a name is passed to it.
Thanks to Markush for discussions.
2016-07-07 10:06:55 -04:00
Akshesh
f7e907115f
Refs #26709 -- Added IndexOperation to avoid code duplication.
2016-07-07 07:35:26 -04:00
Akshesh
b1e7d19d4c
Refs #26709 -- Required a name for Indexes passed to AddIndex.
...
Thanks to Markush for discussions.
2016-07-07 07:31:23 -04:00
Akshesh
156e2d59cf
Fixed #26709 -- Added class-based indexes.
...
Added the AddIndex and RemoveIndex operations to use them in migrations.
Thanks markush, mjtamlyn, timgraham, and charettes for review and advice.
2016-06-27 10:41:01 -04:00
Loïc Bistuer
2eb7cb2fff
Fixed #26643 -- Prevented unnecessary AlterModelManagers operations caused by the manager inheritance refactor.
...
This also makes migrations respect the base_manager_name and
default_manager_name model options.
Thanks Anthony King and Matthew Schinckel for the initial patches.
2016-06-20 12:55:57 -04:00
Sergey Fedoseev
7fc4c1db62
Fixed #26710 -- Made CreateModel.references_model() take app_label into account.
2016-06-06 11:49:45 -04:00
Vytis Banaitis
f1e408ff40
Fixed #25044 -- Fixed migrations for renaming ManyToManyField's through model.
2016-05-30 10:17:45 -04:00
Tim Graham
cb4be0262a
Removed unused code in AlterField.database_forwards().
...
This code added in 107c9f5453
isn't
used after 4ce7a6bc84
.
2016-05-14 06:43:40 -04:00
Simon Charette
f951bb78cb
Refs #26521 -- Adjusted CreateModel bases validation to account for mixins.
...
Thanks Collin for the report.
2016-04-28 18:20:48 -04:00
Simon Charette
a877a2f83d
Refs #26521 -- Added the duplicated value to CreateModel validation messages.
...
Thanks Tim for the suggestion.
2016-04-27 16:17:22 -04:00
James Robert
417e083e55
Fixed #26521 -- Validated CreateModel bases, fields and managers for duplicates.
2016-04-27 12:43:56 -04:00
Akshesh
b886f166b3
Fixed #26316 -- Factored duplicated code in model/field migration operations.
2016-03-03 18:24:36 -05:00
Pankrat
f91a04621e
Fixed #25833 -- Added support for non-atomic migrations.
...
Added the Migration.atomic attribute which can be set to False
for non-atomic migrations.
2016-02-05 09:09:05 -05:00
Simon Charette
729e0b086d
Fixed #24109 -- Allowed RunSQL and RunPython operations to be elided.
...
Thanks to Markus Holtermann and Tim Graham for their review.
2016-01-23 14:19:03 -05:00
Simon Charette
49f4c9f4c6
Fixed #26064 -- Moved operation reduction logic to their own class.
...
Thanks to Markus Holtermann and Tim Graham for their review.
2016-01-23 14:19:02 -05:00
Amos Onn
bd3c2900fc
Fixed #25892 -- Optimized SeparateDatabaseAndState.database_backwards().
...
Now intermediate states in the database_backwards are cached, similar to
the executor's migrate() (or _migrate_all_backwards()). This makes the
migration run much faster (O(n) instead of O(n^2) over number of
database_operations).
2016-01-07 08:13:56 -05:00