Commit Graph

378 Commits

Author SHA1 Message Date
Simon Charette 4b02b433b7 [1.8.x] Fixed #25852 -- Made sure AlterModelManager forces a reload of its model state.
Thanks to Geoffrey Sechter and the Django NYC group for the report and Markus
for the review.

Backport of c4e372aaf4 from master
2015-12-15 14:55:05 -05:00
Amos Onn 0772bffd4a [1.8.x] Fixed #25896 -- Fixed state bug in SeparateDatabaseAndState.database_backwards().
Backport of 542b7f6c50 from master
2015-12-09 11:08:17 -05:00
David Filipovic 8c8a6d8a3f [1.8.x] Fixed #25618 -- Restored migration support for non-upgraded apps.
A non-upgraded app is one that retains South migrations in the
`migrations` module and doesn't introduce Django migrations.
2015-11-10 10:34:25 -05:00
Tim Graham 65bff161ff [1.8.x] Fixed #25618 -- Added a helpful error message when Django & south migrations exist in the same directory. 2015-10-28 09:59:32 -04:00
Tim Graham e2ea30c440 [1.8.x] Fixed #24979 -- Removed usage of inspect.getargspec().
Backport of 3872a33132 from master
2015-10-25 06:02:21 -04:00
Benjamin Wohlwend 67896c8561 [1.8.x] Fixed #25453 -- Reworded makemigration's ask_not_null_alteration suggestion.
Backport of de31423130 from master
2015-09-23 13:41:01 -04:00
Markus Holtermann 3cc5cc7958 [1.8.x] Fixed #25384 -- Ordered imports in newly created migration files 2015-09-12 13:23:38 +10:00
Kai Richard Koenig 181528726e [1.8.x] Fixed #25040 -- Fixed migrations state crash with GenericForeignKey
Backport of 60f795c060 from master
2015-08-22 08:50:19 -04:00
Carl Meyer 2358c1e5d7 [1.8.x] Cleaned up docstring style, per Tim Graham review.
Backport of 57dbc87ade from master.
2015-06-03 19:21:23 -06:00
Carl Meyer feed5ad2a0 [1.8.x] Refs #24628 -- Added a second test and a docstring comment to avoid regression.
Backport of 5c085ea7b3 from master.
2015-06-03 15:48:53 -06:00
Carl Meyer efdcd13c34 [1.8.x] Fixed #24628 -- Fixed applied status for squashed migrations.
Backport of 492537ac18 from master.
2015-06-02 16:21:58 -06:00
Carl Meyer 98b40ffe61 [1.8.x] Fixed #24895 -- Fixed loading a pair of squashed migrations with a dependency.
Backport of 84522c0d16 from master.
2015-06-02 12:10:04 -06:00
Marten Kenbeek 1ac4c7d415 [1.8.x] Fixed #24848 -- Fixed ValueError for faulty migrations module.
Added apps to unmigrated apps if the migrations module is a file
or a folder missing __init__.py.

Thanks to Ernest0x for the bug report.

Backport of d73176a842 from master
2015-05-25 13:56:37 -04:00
Markus Holtermann bf4dc5733f [1.8.x] Fixed #24725 -- Allowed renaming of target models in ManyToMany relations
This is a regression caused by introducing rendered migration states in
1aa3e09c20 and the _meta refactoring in fb48eb0581.

Thanks to Danilo Bargen for reporting the issue and Marten Kenbeek and
Tim Graham for triaging the bug and providing the initial test case.

Backport of 63f9b633f9 from master
2015-04-30 13:46:24 +02:00
Markus Holtermann 419f296259 [1.8.x] Fixed #24701 -- Converted model manager names to unicode in migrations
Thanks to Reto Aebersold for reporting the issue and Tim Graham and
Claude Paroz for the review.

Backport of faad6070ee from master
2015-04-25 18:18:40 +02:00
Markus Holtermann 0cacb8f8ba [1.8.x] Fixed #24573 -- Considered new related models for reloading
Thanks tttomekkk for the report.

Backport of b93690c465 from master
2015-04-21 12:06:11 +02:00
Matthew Wilkes 697317f334 [1.8.x] Refs #24354 -- Prevented repointing of relations on superclasses when migrating a subclass's name change
The issue was hidden on 1.8+ until #24573 due to a bug inside the model
reloading process.

Forwardport of patch from ae87ad005f
2015-04-21 12:02:27 +02:00
Marten Kenbeek 516907540b [1.8.x] Refs #24591 -- Optimized cloning of ModelState objects.
Changed ModelState.clone() to create a deepcopy of self.fields.
2015-04-20 19:23:15 -04:00
Patryk Zawadzki 9f632dc702 [1.8.x] Fixed #24513 -- Made sure a model is only rendered once during reloads
This also prevents state modifications from corrupting previous states.
Previously, when a model defining a relation was unregistered first,
clearing the cache would cause its related models' _meta to be cleared
and would result in the old models losing track of their relations.

Backport of 0385dad073 from master
2015-04-07 14:56:33 +02:00
Marten Kenbeek 773387ce42 [1.8.x] Fixed #24278 -- Fixed serialization of migration operations.
Fixed MigrationWriter.serialize() to correctly handle migration
operations by utilizing OperationWriter.

Thanks Piotr Maliński for the report.

Backport of e8e4f978dd from master
2015-04-05 20:29:27 +02:00
Marten Kenbeek 651cc369ad [1.8.x] Refs #24278 -- Allowed multi-line serializations in OperationWriter.
Changed OperationWriter to support multi-line serialized values with
correct indentation.

Backport of d597174bd4 from master
2015-04-05 20:29:21 +02:00
Baptiste Mispelon 09188b5024 [1.8.x] Fixed #24566 -- Added support for serializing timedelta
Thanks to knbk for the report.

Backport of 30a3c2f74c from master.
2015-04-02 17:41:08 +02:00
Markus Holtermann 2218f7617e [1.8.x] Refs #24554 -- Prevented rendering of unused migrations
Thanks Claude Paroz and Tim Graham for the review

Backport of 3e7d9d05ac from master
2015-04-01 11:14:55 +02:00
Markus Holtermann 0c7e2833d9 [1.8.x] Fixed #24554 -- Sped up migrations by rendering initial apps when they are 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

Backport of 57dc8dd3fa from master
2015-04-01 11:14:55 +02:00
Markus Holtermann bff446c205 [1.8.x] Fixed #24435 -- Prevented m2m field removal and addition in migrations when changing blank
Thanks Mark Tranchant for the report and Tim Graham for the test and
review.

Backport of a9e29fae10 from master
2015-03-04 15:44:38 +01:00
Marten Kenbeek 980dfca717 [1.8.x] Fixed #24366 -- Optimized traversal of large migration dependency graphs.
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.

Backport of 78d43a5e10 from master
2015-02-23 12:55:43 +01:00
Loic Bistuer 3a6c37fce4 [1.8.x] Fixed #24351, #24346 -- Changed the signature of allow_migrate().
The new signature enables better support for routing RunPython and
RunSQL operations, especially w.r.t. reusable and third-party apps.

This commit also takes advantage of the deprecation cycle for the old
signature to remove the backward incompatibility introduced in #22583;
RunPython and RunSQL won't call allow_migrate() when when the router
has the old signature.

Thanks Aymeric Augustin and Tim Graham for helping shape up the patch.

Refs 22583.

Conflicts:
	django/db/utils.py

Backport of bed504d70b from master
2015-02-20 21:55:50 +07:00
Marten Kenbeek 84c9b24c5a [1.8.x] Fixed #24291 - Fixed migration ModelState generation with unused swappable models
Swapped out models don't have a _default_manager unless they have
explicitly defined managers. ModelState.from_model() now accounts for
this case and uses an empty list for managers if no explicit managers
are defined and a model is swapped out.

Backport of 15dc8d1c9d from master
2015-02-18 19:11:51 +01:00
Tim Graham 09da1b465e [1.8.x] Refs #24324 -- Fixed UnicodeDecodeError in MigrationWriter on Python 2.
Backport of fa66ea7532 from master
2015-02-17 18:50:15 -05:00
Tim Graham ba3a7636f1 [1.8.x] Refs #24324 -- Fixed UnicodeDecodeError in makemigrations.
If the project path contained a non-ASCII character, Python 2 crashed.

Backport of c9ece2e6b9 from master
2015-02-17 08:14:01 -05:00
Markus Holtermann a1ba462793 [1.8.x] Fixed #24225, #24264, #24282 -- Rewrote model reloading in migration project state
Instead of naively reloading only directly related models (FK, O2O, M2M
relationship) the project state needs to reload their relations as well
as the model changes as well. Furthermore inheriting models (and super
models) need to be reloaded in order to keep inherited fields in sync.

To prevent endless recursive calls an iterative approach is taken.

Backport of b29f3b5120 from master
2015-02-16 19:38:02 +01:00
Markus Holtermann bd80fa6b0f [1.8.x] Fixed #24184 -- Prevented automatic soft-apply of migrations
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.

Backport of f287bec583 from master
2015-02-13 15:21:10 +01:00
Tim Graham a8b70d251d [1.8.x] Sorted imports with isort; refs #23860.
Backport of 0ed7d15563 from master
2015-02-09 14:24:06 -05:00
Markus Holtermann edbf6de753 [1.8.x] Revert "Fixed #24075 -- Prevented running post_migrate signals when unapplying initial migrations of contenttypes and auth"
This reverts commit 737d24923a.

Backport of 2832a9b028 from master
2015-02-07 20:35:20 +01:00
Adam Taylor 45aaced91e [1.8.x] Fixed typos in code comments.
Backport of 039465a6a7 from master
2015-01-20 12:18:29 -05:00
Tim Graham 28db4af80a Fixed #24135 -- Made RenameModel rename many-to-many tables.
Thanks Simon and Markus for reviews.
2015-01-15 20:34:33 -05:00
Markus Holtermann 737d24923a Fixed #24075 -- Prevented running post_migrate signals when unapplying initial migrations of contenttypes and auth
Thanks Florian Apolloner for the report and Claude Paroz and Tim Graham for the review and help on the patch.
2015-01-14 19:59:39 +01:00
Markus Holtermann 88786afbff Fixed #24147 -- Prevented managers leaking model during migrations
Thanks Tim Graham for the review.
2015-01-14 16:09:33 +01:00
Markus Holtermann eeb88123e7 Fixed #24129 -- Added indicator that migrations are rendering the initial state
Thanks Tim Graham for the review.
2015-01-12 19:23:46 +01:00
Markus Holtermann bbbed99f62 Fixed #24123 -- Used all available migrations to generate the initial migration state
Thanks Collin Anderson for the input when creating the patch and Tim Graham for the review.
2015-01-12 18:39:18 +01:00
Markus Holtermann be158e3625 Refs #24110 -- Added a more descriptive release note and fixed a spelling mistake. 2015-01-11 00:30:47 +01:00
Markus Holtermann fdc2cc9487 Fixed #24110 -- Rewrote migration unapply to preserve intermediate states 2015-01-10 23:14:15 +01:00
Loic Bistuer 8f4877c89d Fixed #22583 -- Allowed RunPython and RunSQL to provide hints to the db router.
Thanks Markus Holtermann and Tim Graham for the review.
2015-01-10 00:30:48 +07:00
Markus Holtermann c8bac4b556 Fixed #24098 -- Added no-op attributes to RunPython and RunSQL
Thanks Loïc Bistuer and Tim Graham for the discussion and review.
2015-01-09 10:31:32 -05:00
Markus Holtermann 862ea825b5 Fixed #24093 -- Prevented MigrationWriter to write operation kwargs that are not explicitly deconstructed 2015-01-07 17:29:20 -07:00
Markus Holtermann 1f03d2d924 Refs #23822 -- Made MigrationOptimizer aware of model managers 2015-01-07 17:33:04 -05:00
Markus Holtermann 12bf42ae0d Refs #22608 -- Optimized migration optimizer
Moved list constants instantiation into optimizer's __init__.
2015-01-07 08:54:46 -05:00
Ulrich Petri 391bb09bb0 Refs #22608 -- Optimized migration optimizer and migrate by caching calls to str.lower() 2015-01-07 08:54:46 -05:00
Daniel Pyrathon fb48eb0581 Fixed #12663 -- Formalized the Model._meta API for retrieving fields.
Thanks to Russell Keith-Magee for mentoring this Google Summer of
Code 2014 project and everyone else who helped with the patch!
2015-01-06 19:25:12 -05:00
Claude Paroz 1aa3e09c20 Fixed #23745 -- Reused states as much as possible in migrations
Thanks Tim Graham and Markus Holtermann for the reviews.
2015-01-02 15:37:10 +01:00