summaryrefslogtreecommitdiff
path: root/django/db/migrations/operations
AgeCommit message (Collapse)Author
2026-04-20Refs #36005 -- Made OperationCategory subclass StrEnum.Clifford Gama
2026-02-02Fixed #36893 -- Serialized elidable kwarg for RunSQL and RunPython operations.SnippyCodes
2025-07-25Refs #36438 -- Made FieldOperation.references_field() detect references in ↵Clifford Gama
GeneratedField.expression. Thanks to Simon Charette for the suggestion and review.
2025-07-23Refs #36500 -- Rewrapped long docstrings and block comments via a script.django-bot
Rewrapped long docstrings and block comments to 79 characters + newline using script from https://github.com/medmunds/autofix-w505.
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-24Fixed #34366 -- Reduced AlterField operations when optimizing migrations.Laurent Tramoy
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 "Refs #27236 -- Added generic mechanism to handle ↵Mariusz Felisiak
the deprecation of migration operations." This reverts commit 41019e48bbf082c985e6ba3bad34d118b903bff1.
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-07-08Refs #27236 -- Added generic mechanism to handle the deprecation of ↵David Wobrock
migration operations.
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-10-19Fixed #33197 -- Made field rename with prior matching db_column change a noop.Simon Charette
Thanks Jacob Walls for the report.
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-02-19Fixed #32256 -- Fixed migration optimization crash when swapping field names.Hasan Ramezani
This disables optimization of RenameField operation when an old field name is referenced in subsequent operations. Co-authored-by: InvalidInterrupt <InvalidInterrupt@users.noreply.github.com>
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-08-28Fixed #31954 -- Fixed migration optimization for MTI model creation with ↵Koen De Wit
parent model with mixed case app label.
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-09Replaced Operation._get_model_tuple() by ModelTuple.from_model().Simon Charette
This method predated the introduction of ModelTuple and had a single use.
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.