Commit Graph

2782 Commits

Author SHA1 Message Date
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
Andriy Sokolovskiy 121c5f7d5b [1.8.x] Removed duplicate attribute in MySQL DatabaseSchemaEditor.
Backport of 29b4a3f513 from master
2015-03-30 19:24:06 -04:00
Tim Graham b81ce2ed67 [1.8.x] Fixed #24532 -- Restored fallback support for allow_syncdb. 2015-03-24 10:33:50 -04:00
Josh Smeaton e654123f7f Fixed #24485 -- Allowed combined expressions to set output_field 2015-03-22 17:41:12 +11:00
Josh Smeaton 3a1886d111 [1.8.x] Fixed #24508 -- Made annotations commutative
Backport of 127b3873d0 from master
2015-03-22 17:35:22 +11:00
Karl Hobley a8c53041f9 [1.8.x] Fixed #24495 -- Allowed unsaved model instance assignment check to be bypassed.
Backport of 81e1a35c36 from master
2015-03-18 19:12:46 -04:00
Josh Smeaton a0cebe82b5 [1.8.x] Refs #24485 -- Renamed some expression types
Backport of 88d798d71a from master
2015-03-17 08:40:45 -04:00
Josh Smeaton 34e09e532d [1.8.x] Fixed #24486 -- Fixed error with datetime and DurationField arithmetic
Backport of ff2aa40192 from master
2015-03-17 08:36:15 -04:00
Anssi Kääriäinen 3a0fe942dd [1.8.x] Fixed #24171 -- Fixed failure with complex aggregate query and expressions
The query used a construct of qs.annotate().values().aggregate() where
the first annotate used an F-object reference and the values() and
aggregate() calls referenced that F-object.

Also made sure the inner query's select clause is as simple as possible,
and made sure .values().distinct().aggreate() works correctly.

Backport of fb146193c4 from master
2015-03-09 07:51:05 -04:00
Jean-Louis Fuchs 1ae2df6bfc [1.8.x] Fixed #24447 -- Made migrations add FK constraints for existing columns
When altering from e.g. an IntegerField to a ForeignKey, Django didn't
add a constraint.

Backport of f4f0060fea from master
2015-03-07 14:15:27 +01:00
Josh Smeaton 823f8cdbc9 [1.8.x] Fixed #24420 -- Allowed ordering by case expressions
Backport of ceaf31adff from master
2015-03-06 13:31:43 +11: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
Claude Paroz b825ec38c1 [1.8.x] Fixed #24418 -- Prevented crash in refresh_from_db with null fk
Thanks Johannes Lerch for the report, Tim Graham for the test case,
and Simon Charette for the review.
Backport of 5cf96b49e4 from master.
2015-02-27 20:25:12 +01:00
Anssi Kääriäinen 155a127afb [1.8.x] Fixed #24381 -- removed ForeignObjectRel opts and to_opts
These cached properies were causing problems with pickling, and in
addition they were confusingly defined: field.rel.model._meta was
not the same as field.rel.opts.

Instead users should use field.rel.related_model._meta inplace of
field.rel.opts, and field.rel.to._meta in place of field.rel.to_opts.

Backport of f95122e541 from master
2015-02-23 07:26:10 -05: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
Michael Manfre ed941ef2d0 Fixed signature of BaseDatabaseOperations.date_interval_sql()
Backport of 7fa7dd48c4 from master
2015-02-23 00:04:57 -05:00
Michael Angeletti 1feeefe918 [1.8.x] Fixed #24376 -- added verbose_name arg to UUIDField
Backport of ea3168dc6c from master
2015-02-21 14:26:47 -05:00
Don Kirkby 5131aec7d2 [1.8.x] Fixed typo in django/db/models/fields/files.py comment.
Backport of 99a1bbf985 from master
2015-02-20 20:11:58 -05:00
Anssi Kääriäinen 6f03a4ca91 [1.8.x] Fixed #24328 -- cleaned up Options._get_fields() implementation
Backport of bad5f262bf from master
2015-02-20 13:11:59 -05: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
Marc Tamlyn 3886338c1d [1.8.x] Update converters to take a consistent set of parameters.
As suggested by Anssi. This has the slightly strange side effect of
passing the expression to Expression.convert_value has the expression
passed back to it, but it allows more complex patterns of expressions.

Backport of 32d4db66b9 from master
2015-02-20 11:47:48 +00:00
Marc Tamlyn c54d73ae01 [1.8.x] Fixed #24343 -- Ensure db converters are used for foreign keys.
Joint effort between myself, Josh, Anssi and Shai.

Conflicts:
	django/db/models/query.py
	tests/model_fields/models.py

Backport of 4755f8fc25 from master.
2015-02-20 11:46:57 +00:00
Shai Berger 66d37e593c [1.8.x] Fixed #24307: Avoided redundant column nullability modifications on Oracle
Thanks Joris Benschop for the report, and Tim Graham for the tests.

Backport of ceadc94f09 from master
2015-02-19 02:44:08 +02: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
Adam Chainz 4abadc4872 [1.8.x] Removed unused foreign_key_re variables in MySQL/Oracle DB backends
Backport of e9282747a4 from master
2015-02-18 10:24:40 -05: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
Tim Graham 4f43e5c435 [1.8.x] Refs #24324 -- Fixed UnicodeEncodeError in SQLite backend while testing.
If 'name' contained non-ASCII characters, the comparison raised a
UnicodeEncodeError on Python 2.

Backport of 63c5c98701 from master
2015-02-17 08:11:38 -05:00
Tim Graham 730fb593ad [1.8.x] Fixed #24335 -- Bumped required psycopg2 version to 2.4.5 (2.5 for contrib.postgres).
Backport of 3adc5f1ee6 from master
2015-02-17 06:21:59 -05:00
Aymeric Augustin d027993ed1 [1.8.x] Removed 'autocommit' options for the psycopg2 backend.
It was documented as not having any effect since Django 1.6.

Backport of a73c8540a8 from master
2015-02-17 06:21:37 -05:00
Aymeric Augustin 30e5356c2e [1.8.x] Cleaned up init_connection_state in the psycopg2 backend.
settings_dict['TIME_ZONE'] is set in ConnectionHandler.ensure_defaults.

Backport of 28e97a9bdc from master
2015-02-17 06:21:24 -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
Aymeric Augustin 87e9cad4a4 [1.8.x] Fixed #24318 -- Set the transaction isolation level with psycopg >= 2.4.2.
Backport of 76356d96 from master
2015-02-14 18:52:28 +01:00
Loic Bistuer 20b621eb3c [1.8.x] Fixed #24289 -- Reversed usage of Field.many_to_one and one_to_many.
Thanks Carl Meyer and Tim Graham for the reviews and to all involved
in the discussion.

Backport of 18c0aaa912 from master
2015-02-14 02:42:06 +07: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
Josh Smeaton 1784c326b1 [1.8.x] Fixed #24319 -- Added validation for UUID model field
Backport of de0241eb98 from master
2015-02-13 10:01:06 +11:00
Josh Smeaton a6ea62aeaf [1.8.x] Refs #14030 -- Improved expression support for python values
Backport of e2d6e14662 from master
2015-02-12 08:53:03 +11:00
Daniel Pyrathon fdcc9c47d5 [1.8.x] Fixed #24146 -- Allowed model._meta.get_field() to be used after apps.models_ready
Backport of 19188826b4 from master
2015-02-10 19:55:42 -05:00
Loic Bistuer 00f76b018f [1.8.x] Fixed isort import that's inconsistent between platforms.
Backport of c8e24bbc9b from master
2015-02-10 18:53:23 -05:00
Josh Smeaton 3518d51697 [1.8.x] Fixed #24200 -- Made introspection bypass statement cache
Backport of 1fbe8a2de3 from master
2015-02-10 23:42:16 +02: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
Tim Graham 9744529c12 [1.8.x] Fixed #24302 -- Added DurationField.formfield()
Backport of 2d7c27d387 from master
2015-02-09 10:21:15 -05:00
jMyles ac576e9f45 [1.8.x] Fixed #24287 -- Added friendly error if a model is in a models.py outside an installed app. 2015-02-09 09:38:03 -05:00
Tim Graham 6e50fc9246 [1.8.x] Removed unnecessary parentheses in model check messages.
Backport of e144e0e237 from master
2015-02-09 08:57:02 -05:00
Aron Podrigal eb9fbc0b1d [1.8.x] Fixed #24249 -- Improved field shadowing validation in model multi-inheritance.
Backport of 4d73303ee9 from master
2015-02-09 08:43:40 -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
Collin Anderson fc8e1e0c10 [1.8.x] Fixed E265 comment style
Backport of db77915c9f from master
2015-02-06 09:35:08 -05:00
Tim Graham fc1e9107d7 [1.8.x] Added UUIDField.deconstruct()
Backport of 0f54cf28c0 from master
2015-02-05 19:15:37 -05:00