summaryrefslogtreecommitdiff
path: root/django/db/migrations/operations/models.py
AgeCommit message (Collapse)Author
2025-06-19Refs #35038 -- Reduced CreateModel/AlterConstraint operations when ↵Jacob Walls
optimizing migrations.
2025-03-31Refs #28909 -- Simplified code using unpacking generalizations.Aarni Koskela
2025-02-16Refs #35704 -- Used copy.replace() in Operation.reduce() methods.Adam Johnson
2024-12-17Fixed #34856 -- Fixed references to index_together in historical migrations.Andrés Reverón Molina
While AlterUniqueTogether has been documented to be still allowed in historical migrations for the foreseeable future it has been crashing since 2abf417c815c20 was merged because the latter removed support for Meta.index_together which the migration framework uses to render models to perform schema changes. CreateModel(options["unique_together"]) was also affected. Refs #27236. Co-authored-by: Simon Charette <charette.s@gmail.com>
2024-11-28Fixed #35038 -- Created AlterConstraint operation.Salvo Polizzi
2024-09-03Fixed #35704 -- Fixed reduction for AddIndex subclasses.Adam Johnson
2024-08-30Fixed #35700 -- Added AlterModelTable and AlterModelTableComment reductions.Adam Johnson
2024-06-13Fixed #34881 -- Fixed a crash when renaming a model with multiple ↵Anže Pečar
ManyToManyField.through references on SQLite. Thank you to dennisvang for the report and Jase Hackman for the test. Co-authored-by: Jase Hackman <jase.hackman@zapier.com>
2024-02-09Refs #34534 -- Reduced constraint operations with Meta.constraints when ↵Ben Cail
optimizing migrations.
2024-01-26Applied Black's 2024 stable style.Mariusz Felisiak
https://github.com/psf/black/releases/tag/24.1.0
2024-01-17Fixed #31700 -- Made makemigrations command display meaningful symbols for ↵Amir Karimi
each operation.
2023-12-22Fixed #35022 -- Fixed RenameIndex() crash on unnamed indexes if exists ↵David Wobrock
unique constraint on the same fields.
2023-09-18Refs #27236 -- Removed Meta.index_together per deprecation timeline.Mariusz Felisiak
2023-05-09Refs #34534 -- Reduced Add/RemoveConstraint and Add/RenameIndex operations ↵Akash Kumar Sen
when optimizing migrations.
2023-05-03Fixed #34529, Refs #34525 -- Reduced index operations with ↵Mariusz Felisiak
Meta.indexes/index_together when optimizing migrations. This makes squashing migrations an available path for changing Meta.index_together, which is deprecated, to Meta.indexes. Follow up to f81032572107846922745b68d5b7191058fdd5f5.
2023-05-01Fixed #34528 -- Reduced Add/RemoveIndex operations when optimizing migrations.Mariusz Felisiak
2023-02-14Fixed #34250 -- Fixed renaming model with m2m relation to a model with the ↵DevilsAutumn
same name.
2023-02-01Refs #33476 -- Applied Black's 2023 stable style.David Smith
Black 23.1.0 is released which, as the first release of the year, introduces the 2023 stable style. This incorporates most of last year's preview style. https://github.com/psf/black/releases/tag/23.1.0
2022-12-28Fixed #18468 -- Added support for comments on columns and tables.kimsoungryoul
Thanks Jared Chung, Tom Carrick, David Smith, Nick Pope, and Mariusz Felisiak for reviews. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com> Co-authored-by: Nick Pope <nick@nickpope.me.uk>
2022-08-26Fixed #33953 -- Reverted "Fixed #33201 -- Made RenameModel operation a noop ↵Iuri de Silvio
for models with db_table." Regression in afeafd6036616bac8263d762c1610f22241c0187. This reverts afeafd6036616bac8263d762c1610f22241c0187. Thanks Timothy Thomas for the report.
2022-07-26Refs #27236 -- Reverted AlterIndexTogether deprecation.Mariusz Felisiak
This partly reverts a6385b382e05a614a99e5a5913d8e631823159a2.
2022-07-12Fixed #27236 -- Deprecated Meta.index_together in favor of Meta.indexes.David Wobrock
This also deprecates AlterIndexTogether migration operation.
2022-05-16Fixed #33710 -- Made RenameIndex operation a noop when the old and new name ↵David Wobrock
match.
2022-05-12Refs #27064 -- Added RenameIndex migration operation.David Wobrock
2022-03-11Fixed #33572 -- Implemented CreateModel/AlterModelManagers reduction.Adam Johnson
2022-02-07Refs #33476 -- Reformatted code with Black.django-bot
2022-01-04Fixed #33402 -- Optimized multiple AlterFooTogether operations.David Wobrock
2021-10-27Fixed #33201 -- Made RenameModel operation a noop for models with db_table.Iuri de Silvio
2021-06-29Refs #29898 -- Moved state_forwards()'s logic from migration operations to ↵manav014
ProjectState. Thanks Simon Charette and Markus Holtermann for reviews.
2021-06-22Refs #29898 -- Moved django.db.migrations.operations.utils to ↵manav014
django.db.migrations.utils.
2021-04-16Refs #29899 -- Moved resolve_relation() to django.db.migrations.utils.David Wobrock
2021-01-13Fixed #26167 -- Added support for functional indexes.Hannes Ljungberg
Thanks Simon Charette, Mads Jensen, and Mariusz Felisiak for reviews. Co-authored-by: Markus Holtermann <info@markusholtermann.eu>
2020-12-18Fixed #32262 -- Fixed migration optimization for model creation and Meta ↵Hasan Ramezani
options removal.
2020-05-28Fixed #31468 -- Allowed specifying migration filename in Operation.Adam Johnson
This adds also suggested filename for many built-in operations.
2020-04-22Fixed #31499 -- Stored ModelState.fields into a dict.Simon Charette
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-10Refs #28305 -- Consolidated field referencing detection in migrations.Simon Charette
This moves all the field referencing resolution methods to shared functions instead of duplicating efforts amongst state_forwards and references methods.
2020-04-09Replaced ModelTuple by a model resolving function and bare tuples.Simon Charette
ModelTuple made handling of app_label=None easier but it isn't necessary anymore.
2020-04-09Made Operation.references_model/references_field require app_label.Simon Charette
This will allow them to drop a ton of logic to deal with null app_label.
2020-04-09Refs #22608 -- Made app_label required when optimizing migrations.Simon Charette
This paved the way for the removal of lot of logic when app_label was not specified.
2019-08-02Simplified AlterModelTable by making it subclass ModelOptionOperation.Nick Pope
2018-10-29Fixed #29868 -- Retained database constraints on SQLite table rebuilds.Simon Charette
Refs #11964. Thanks Scott Stevens for testing this upcoming feature and the report.
2018-09-28Refs #28909 -- Simplifed code using unpacking generalizations.Sergey Fedoseev
2018-09-14Fixed #29755 -- Made migrations detect changes to Meta.default_related_name.Simon Charette
2018-07-19Refs #28862 -- Removed the FieldRelatedOptionOperation.reduce() optimization.Simon Charette
It isn't required anymore since AlterTogetherOperations can be reduced into CreateModels which can reduce DeleteField operations.
2018-07-19Fixed #26906 -- Reduced alter together operations code duplication.Simon Charette
Thanks Akshesh Doshi for the initial patch.
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-11Removed in_between from Operation.reduce()'s signature.Simon Charette
It isn't used since FieldOperation.references_model() takes into account models referenced by the field it's operating on.
2018-07-11Introduced ModelTuple to remove migrations boilerplate.Simon Charette
2018-07-11Fixed #26720 -- Prevented invalid CreateModel optimizations of related fields.Simon Charette