summaryrefslogtreecommitdiff
path: root/django/db/migrations/executor.py
AgeCommit message (Collapse)Author
2025-11-18Fixed #36141 -- Checked for applied replaced migrations recursively.Georgi Yanchev
Regression in 64b1ac7292c72d3551b2ad70b2a78c8fe4af3249.
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-04-01Fixed #36184 -- Allowed migrating forward to squashed migrations.Jacob Walls
2025-02-13Fixed #36146 -- Recorded applied/unapplied migrations recursively.Georgi Yanchev
2024-03-22Fixed #34841 -- Avoided rendering apps on state still requiring mutation.David Sanders
2022-02-07Refs #33476 -- Refactored code to strictly match 88 characters line length.Mariusz Felisiak
2022-02-07Refs #33476 -- Reformatted code with Black.django-bot
2021-12-30Fixed #23273 -- Avoided creation of django_migrations table when there are ↵Jacob Walls
no migrations to apply.
2021-08-30Fixed #24900 -- Allowed migrating backward to squashed migrations.Jacob Walls
2021-08-11Refs #29898 -- Changed ProjectState.real_apps to set.Mariusz Felisiak
2021-06-08Fixed #25255 -- Recorded unapplied squashed migrations.Jacob Walls
2021-01-21Fixed #32374 -- Stopped recording migration application before deferred SQL.Simon Charette
Migrations cannot be recorded in the same transaction as its associated DDL operations when some of it is deferred until the schema editor context exits. Regression in c86a3d80a25acd1887319198ca21a84c451014ad.
2020-03-09Refs #31318 -- Moved MigrationExecutor.collect_sql() to MigrationLoader.David Wobrock
collect_sql() is used only in sqlmigrate.
2020-02-06Fixed #31233 -- Closed database connections and cursors after use.Jon Dufresne
2019-11-15Fixed #29808 -- Fixed initial migration detection when identifiers are ↵Hasan Ramezani
case-insensitive. Thanks Simon Charette for the review.
2019-11-15Refs #29808 -- Optimized MigrationExecutor.detect_soft_applied().Hasan Ramezani
Use set() for iterables used only for containment checks. Simplify column checks O(n) instead of O(2n). Thanks Simon Charette for an idea.
2019-03-07Refs #30186 -- Changed MigrationRecorder.applied_migrations() to return a dict.Tim Schilling
2018-10-24Fixed #29721 -- Ensured migrations are applied and recorded atomically.Sanyam Khurana
2017-11-28Fixed #28853 -- Updated connection.cursor() uses to use a context manager.Jon Dufresne
2017-06-19Fixed #27858 -- Prevented read-only management commands from creating the ↵Marti Raudsepp
django_migrations table. MigrationRecorder now assumes that if the django_migrations table doesn't exist, then no migrations are applied. Reverted documentation change from refs #23808.
2017-02-28Refs #27656 -- Updated django.db docstring verbs according to PEP 257.Anton Samarchyan
2017-01-19Refs #23919 -- Stopped inheriting from object to define new style classes.Simon Charette
2017-01-18Refs #23919 -- Removed encoding preambles and future importsClaude Paroz
2016-08-24Fixed #27100 -- Included already applied migration changes in the ↵Simon Charette
pre-migrate state. Refs #24100. Thanks Tim for the review.
2016-08-24Fixed #27044 -- Included already applied migration changes in the ↵Simon Charette
post-migrate state when the execution plan is empty. Refs #24100. Thanks tkhyn for the report and Tim for the review.
2016-05-26Fixed #26647 -- Included the state of all applied migrations when migrating ↵Simon Charette
forward. Thanks Jasper Maes for the detailed report.
2016-05-15Fixed #24100 -- Made the migration signals dispatch its plan and apps.Simon Charette
Thanks Markus for your contribution and Tim for your review.
2016-02-25Fixed #26117 -- Consulted database routers in initial migration detection.Scott Sexton
Thanks Simon Charette for help.
2016-02-05Fixed #25833 -- Added support for non-atomic migrations.Pankrat
Added the Migration.atomic attribute which can be set to False for non-atomic migrations.
2015-12-19Fixed #25922 -- Fixed migrate --fake-initial detection of many-to-many tables.Tim Graham
2015-09-19Fixed #24743, #24745 -- Optimized migration plan handlingMarkus Holtermann
The change partly goes back to the old behavior for forwards migrations which should reduce the amount of memory consumption (#24745). However, by the way the current state computation is done (there is no `state_backwards` on a migration class) this change cannot be applied to backwards migrations. Hence rolling back migrations still requires the precomputation and storage of the intermediate migration states. This improvement also implies that Django does not handle mixed migration plans anymore. Mixed plans consist of a list of migrations where some are being applied and others are being unapplied. Thanks Andrew Godwin, Josh Smeaton and Tim Graham for the review as well as everybody involved on the ticket that kept me looking into the issue.
2015-07-13Fixed #24375 -- Added Migration.initial attributeAndrei Kulakov
The new attribute is checked when the `migrate --fake-initial` option is used. initial will be set to True for all initial migrations (this is particularly useful when initial migrations are split) as well as for squashed migrations.
2015-06-03Cleaned up docstring style, per Tim Graham review.Carl Meyer
2015-06-03Refs #24628 -- Added a second test and a docstring comment to avoid regression.Carl Meyer
2015-06-02Fixed #24628 -- Fixed applied status for squashed migrations.Carl Meyer
2015-04-01Refs #24554 -- Prevented rendering of unused migrationsMarkus Holtermann
Thanks Claude Paroz and Tim Graham for the review
2015-04-01Fixed #24554 -- Sped up migrations by rendering initial apps when they are ↵Markus Holtermann
first needed Calling Migration.mutate_state() now also allows to do in_place mutations in case an intermediate state is thrown away later. Thanks Anssi Kääriäinen for the idea, Ryan Hall for parts of the patch, and Claude Paroz and Tim Graham for the review
2015-02-23Fixed #24366 -- Optimized traversal of large migration dependency graphs.Marten Kenbeek
Switched from an adjancency list and uncached, iterative depth-first search to a Node-based design with direct parent/child links and a cached, recursive depth-first search. With this change, calculating a migration plan for a large graph takes several seconds instead of several hours. Marked test `migrations.test_graph.GraphTests.test_dfs` as an expected failure due to reaching the maximum recursion depth.
2015-02-13Fixed #24184 -- Prevented automatic soft-apply of migrationsMarkus Holtermann
Previously Django only checked for the table name in CreateModel operations in initial migrations and faked the migration automatically. This led to various errors and unexpected behavior. The newly introduced --fake-initial flag to the migrate command must be passed to get the same behavior again. With this change Django will bail out in with a "duplicate relation / table" error instead. Thanks Carl Meyer and Tim Graham for the documentation update, report and review.
2015-02-06Sorted imports with isort; refs #23860.Tim Graham
2015-01-12Fixed #24129 -- Added indicator that migrations are rendering the initial stateMarkus Holtermann
Thanks Tim Graham for the review.
2015-01-12Fixed #24123 -- Used all available migrations to generate the initial ↵Markus Holtermann
migration state Thanks Collin Anderson for the input when creating the patch and Tim Graham for the review.
2015-01-02Fixed #23745 -- Reused states as much as possible in migrationsClaude Paroz
Thanks Tim Graham and Markus Holtermann for the reviews.
2015-01-02Passed around the state between migrationsClaude Paroz
Refs #23745.
2015-01-02Replaced migration state render() by apps cached propertyClaude Paroz
Refs #23745.
2014-11-19Fixed #23410 -- Avoided unnecessary rollbacks in related apps when migrating ↵Carl Meyer
backwards.
2014-09-24Revert "Fixed #23474 -- Prevented migrating backwards from unapplying the ↵Tim Graham
wrong migrations." This reverts commit abcf28a07695a45cb5fb15b81bffc97bea5e0be3.
2014-09-23Called table_names instead of get_table_list in migrationsClaude Paroz
2014-09-15Fixed #23474 -- Prevented migrating backwards from unapplying the wrong ↵valtron
migrations.
2014-07-29Fix soft_applied in a way that doesn't break testsAndrew Godwin