Simon Charette
06889d6206
Fixed #31499 -- Stored ModelState.fields into a dict.
...
This allows the removal of its O(n) .get_field_by_name method and many
other awkward access patterns.
While fields were initially stored in a list to preserve the initial
model definiton field ordering the auto-detector doesn't take field
ordering into account and no operations exists to reorder fields of a
model.
This makes the preservation of the field ordering completely superflous
because field reorganization after the creation of the model state
wouldn't be taken into account.
2020-04-22 07:10:00 +02:00
Simon Charette
f5ede1cb6d
Refs #28305 -- Consolidated field referencing detection in migrations.
...
This moves all the field referencing resolution methods to shared
functions instead of duplicating efforts amongst state_forwards and
references methods.
2020-04-10 09:19:16 +02:00
Simon Charette
8b7b19f6c9
Replaced ModelTuple by a model resolving function and bare tuples.
...
ModelTuple made handling of app_label=None easier but it isn't necessary
anymore.
2020-04-09 10:08:06 +02:00
Simon Charette
8069526ce3
Made Operation.references_model/references_field require app_label.
...
This will allow them to drop a ton of logic to deal with null
app_label.
2020-04-09 10:08:06 +02:00
Simon Charette
25bf15c0da
Refs #22608 -- Made app_label required when optimizing migrations.
...
This paved the way for the removal of lot of logic when app_label was
not specified.
2020-04-09 10:08:02 +02:00
Nick Pope
4cf1f2f13e
Simplified AlterModelTable by making it subclass ModelOptionOperation.
2019-08-02 18:19:55 +02:00
Simon Charette
95bda03f2d
Fixed #29868 -- Retained database constraints on SQLite table rebuilds.
...
Refs #11964 .
Thanks Scott Stevens for testing this upcoming feature and the report.
2018-10-29 10:33:41 +01:00
Sergey Fedoseev
8ef8bc0f64
Refs #28909 -- Simplifed code using unpacking generalizations.
2018-09-28 09:57:12 -04:00
Simon Charette
a4495f4b98
Fixed #29755 -- Made migrations detect changes to Meta.default_related_name.
2018-09-14 09:09:17 -04:00
Simon Charette
1e9b02a4c2
Refs #28862 -- Removed the FieldRelatedOptionOperation.reduce() optimization.
...
It isn't required anymore since AlterTogetherOperations can be reduced into
CreateModels which can reduce DeleteField operations.
2018-07-19 17:42:18 -04:00
Simon Charette
fc16015de4
Fixed #26906 -- Reduced alter together operations code duplication.
...
Thanks Akshesh Doshi for the initial patch.
2018-07-19 17:06:01 -04:00
Simon Charette
8e3f22f251
Fixed #27731 -- Implemented CreateModel/AlterFooOperation reduction.
...
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-19 17:06:01 -04:00
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
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
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
Дилян Палаузов
23bf4ad87f
Fixed #28795 -- Removed 'not in' checks and used dict.setdefault().
2017-11-14 10:52:52 -05: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
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
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