Commit Graph

2881 Commits

Author SHA1 Message Date
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
Aron Podrigal fc49e73648 [1.8.x] Fixed #15321 -- Honored ancestors unique checks.
Thanks to Tim for the review.

Backport of 79f27f2b61 from master
2015-02-03 18:58:48 -05:00
Simon Charette cbcf92e95f [1.8.x] Fixed #24266 -- Changed get_parent_list to return a list ordered by MRO.
Thanks to Aron Podrigal for the initial patch and Tim for the review.

Backport of 65e005f8cd from master
2015-02-03 16:41:51 -05:00
Tim Graham 92d5bedc56 [1.8.x] Reverted "Fixed #24146 -- Fixed a missing fields regression in admin checks."
This reverts commit e8171daf0c.

A new solution is forthcoming.

Backport of 0e489c19f1 from master
2015-02-03 15:24:24 -05:00
Anssi Kääriäinen 43b0131fb5 [1.8.x] Fixed #23617 -- Added get_pk_value_on_save()
The method is mainly intended for use with UUIDField. For UUIDField we
want to call the field's default even when primary key value is
explicitly set to None to match the behavior of AutoField.

Thanks to Marc Tamlyn and Tim Graham for review.

Backport of 8adc59038c from master
2015-02-03 09:25:55 -05:00
Tim Graham 3cd8f51f21 [1.8.x] Removed query.alias_diff()
This function is unused since 6fe2b001db

Backport of f79ce63fdb from master
2015-02-01 21:38:34 -05:00
Tim Graham 7580876fbd [1.8.x] Removed Query.raise_field_error()
This method was inadvertently reintroduced in
f59fd15c49

Backport of 99ca7c2bd3 from master
2015-02-01 20:26:43 -05:00
Tim Graham c9e538b174 [1.8.x] Removed threading fallback imports.
Django imports threading in many other places without fallback.

Backport of 18f3e79b13 from master
2015-02-01 18:45:01 -05:00
Tim Graham 0fc2f94699 [1.8.x] Removed PostgreSQL DatabaseWrapper._set_isolation_level().
This method is unused since 8717b0668c.

Backport of 64a899dc81 from master
2015-01-31 11:06:03 -05:00
Claude Paroz c77dd64402 [1.8.x] Fixed #14483 -- Allowed using subqueries with GIS lookups
Backport of a0b5f15ea5 from master.
2015-01-30 20:29:05 +01:00
Tim Graham 7060ef7158 [1.8.x] Reverted "Fixed #6785 -- Made QuerySet.get() fetch a limited number of rows."
This reverts commit da79ccca1d.

This optimized the unsuccessful case at the expense of the successful one.

Backport of 293fd5da5b from master
2015-01-30 12:52:39 -05:00
Tim Graham df68751134 [1.8.x] Fixed #24164 -- Fixed Oracle GIS limited aggregation test failure.
Backport of 29c0073335 from master
2015-01-30 06:34:36 -05:00
Simon Charette a301061f88 [1.8.x] Fixed #23940 -- Allowed model fields to be named `exact`.
An explicit `__exact` lookup in the related managers filters
was interpreted as a reference to a foreign `exact` field.

Thanks to Trac alias zhiyajun11 for the report, Josh for the investigation,
Loïc for the test name and Tim for the review.

Backport of eb4cdfbdd6 from master
2015-01-29 14:42:28 -05:00
Tim Graham d0c343372f [1.8.x] Removed ForeignObjectRel.get_lookup_constraint() [unused].
Backport of f609731118 from master
2015-01-29 14:12:35 -05:00
Josh Smeaton f858b51ee3 [1.8.x] Refs #14030 -- Renamed CombinableMixin to Combinable
Removed unused method and updated docstrings.

Backport of 14d0bd67d4 from master
2015-01-28 11:04:12 +11:00
Josh Smeaton 6c68e40e6e [1.8.x] Refs #14030 -- Added repr methods to all expressions
Backport of 7171bf755b from master
2015-01-28 11:03:39 +11:00
Josh Smeaton e56810e839 [1.8.x] Fixed #24154 -- Backends can now check support for expressions
Backport of 8196e4bdf4 from master
2015-01-27 14:47:38 +11:00
Andriy Sokolovskiy 11a5e45b96 [1.8.x] Fixed #24104 -- Fixed check to look on field.many_to_many instead of class instance
Backport of 38c17871bb from master
2015-01-22 18:53:47 +01:00
Loic Bistuer 0580133971 [1.8.x] Fixed small inconsistency when handling aggregate's default_alias.
Refs #14030.

Backport of d450af8a26 from master
2015-01-22 08:02:07 +07: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 cb90d489da [1.8.x] Fixed a query failure on Python 3.5; refs #23763.
The failure was introduced in Django by
c7fd9b242d and the change in
Python 3.5 is https://hg.python.org/cpython/rev/a3c345ba3563.

Backport of be1357e709 from master
2015-01-20 08:15:39 -05:00
Josh Smeaton 504cd5d3be [1.8.x] Fixed #24183 -- Fixed wrong comparisons in Substr
Backport of 61c102d010 from master
2015-01-20 12:11:27 +11:00
Markus Holtermann e55cb91bd4 [1.8.x] Fixed #24163 -- Removed unique constraint after index on MySQL
Thanks Łukasz Harasimowicz for the report.

Backport of 5792e6a88c from master
2015-01-19 16:55:25 +01:00
Josh Smeaton 0c910823c1 [1.8.x] Fixed #24174 -- Fixed extra order by descending
Backport of 69c6a6868f from master
2015-01-19 13:18:09 +11:00
Marc Tamlyn 39d95fb6ad Fixed #24092 -- Widened base field support for ArrayField.
Several issues resolved here, following from a report that a base_field
of GenericIpAddressField was failing.

We were using get_prep_value instead of get_db_prep_value in ArrayField
which was bypassing any extra modifications to the value being made in
the base field's get_db_prep_value. Changing this broke datetime
support, so the postgres backend has gained the relevant operation
methods to send dates/times/datetimes directly to the db backend instead
of casting them to strings. Similarly, a new database feature has been
added allowing the uuid to be passed directly to the backend, as we do
with timedeltas.

On the other side, psycopg2 expects an Inet() instance for IP address
fields, so we add a value_to_db_ipaddress method to wrap the strings on
postgres. We also have to manually add a database adapter to psycopg2,
as we do not wish to use the built in adapter which would turn
everything into Inet() instances.

Thanks to smclenithan for the report.
2015-01-16 16:15:16 -05:00
Collin Anderson e8171daf0c Fixed #24146 -- Fixed a missing fields regression in admin checks.
This allows using get_field() early in the app loading process.

Thanks to PirosB3 and Tim Graham.
2015-01-16 14:47:09 -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
Simon Charette 47bdad4e6b Replaced inner functions by class methods.
refs #24031

Thanks to Tim Graham and Michał Modzelewski for the review.
2015-01-15 13:03:34 -05:00
Claude Paroz 67bcae1e58 Moved check_aggregate_support to BaseSpatialOperations 2015-01-14 22:03:41 +01:00
Collin Anderson 2d5da57f48 Fixed incorrect error message in Options.get_fields() 2015-01-14 14:51:05 -05:00
Tim Graham 28308078f3 Fixed #22603 -- Reorganized classes in django.db.backends. 2015-01-14 14:16:20 -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
Michał Modzelewski 65246de7b1 Fixed #24031 -- Added CASE expressions to the ORM. 2015-01-12 18:15:34 -05:00
Shai Berger aa8ee6a573 Fixed test failures in Oracle introspection
Refs #17785
2015-01-13 01:00:09 +02:00
Josh Smeaton 21b858cb67 Fixed #24060 -- Added OrderBy Expressions 2015-01-13 09:39:55 +11:00
Claude Paroz 4c413e231c Fixed #17785 -- Preferred column names in get_relations introspection
Thanks Thomas Güttler for the report and the initial patch, and
Tim Graham for the review.
2015-01-12 19:58:47 +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
Pavel Shpilev a7c256cb54 Fixed #9893 -- Allowed using a field's max_length in the Storage. 2015-01-12 09:09:18 -05:00
Claude Paroz 68a439a18d Removed supports_binary_field flag as all backends support them
It was mainly for MySQL on Python 3, but now the current
recommended MySQL driver for Python 3 (mysqlclient) does support
binary fields, it is unneeded. Refs #20377.
2015-01-11 23:34:47 +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
Marc Tamlyn 916e38802f Move % addition to lookups, refactor postgres lookups.
These refactorings making overriding some text based lookup names on
other fields (specifically `contains`) much cleaner. It also removes a
bunch of duplication in the contrib.postgres lookups.
2015-01-10 16:18:19 +00:00
Claude Paroz 7289d01973 Introspected alternate SQLite FK definitions 2015-01-10 16:51:14 +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
Anssi Kääriäinen 0c7633178f Fixed #24020 -- Refactored SQL compiler to use expressions
Refactored compiler SELECT, GROUP BY and ORDER BY generation.
While there, also refactored select_related() implementation
(get_cached_row() and get_klass_info() are now gone!).

Made get_db_converters() method work on expressions instead of
internal_type. This allows the backend converters to target
specific expressions if need be.

Added query.context, this can be used to set per-query state.

Also changed the signature of database converters. They now accept
context as an argument.
2015-01-08 14:07:54 -05:00
Claude Paroz de4bfb3fad Simplified verbose_name_raw property 2015-01-08 15:08:26 +01: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
Josh Smeaton 8713ea7568 Fixed null handling in Value expression 2015-01-07 19:07:49 -05: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
Michał Modzelewski ee86e59051 Refs #2443 -- Allowed creation of objects with NULL DurationFields 2015-01-07 08:33:26 -05:00
Josh Smeaton 5a4ac4ead9 Fixed #24078 -- Removed empty strings from GenericIPAddressField 2015-01-07 08:08:36 -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
Tim Graham c87ee41954 Fixed #23861 -- Added an API to deprecate model fields.
Thanks Markus Holterman and Berker Peksag for review.
2015-01-05 11:35:36 -05:00
Markus Holtermann 05f702b94c Renamed flag for detecting managers built from QuerySets with as_manager(). 2015-01-05 10:30:15 -05:00
Daniel Pyrathon 8958170755 Fixed #9104 -- Moved FieldDoesNotExist to core.exceptions 2015-01-02 10:46:04 -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
Claude Paroz 2a9c4b4901 Passed around the state between migrations
Refs #23745.
2015-01-02 15:37:10 +01:00
Markus Holtermann 057305e588 Added ignore_swappable to StateApps
Refs #23745.
2015-01-02 15:37:09 +01:00
Claude Paroz a159b1facd Replaced migration state render() by apps cached property
Refs #23745.
2015-01-02 15:19:36 +01:00
Tim Graham 40a8504357 Fixed #23891 -- Moved deprecation of IPAddressField to system check framework.
Thanks Markus Holtermann for review.
2015-01-01 13:30:52 -05:00
Piotr Pawlaczek 41fc1c0b5e Fixed #23758 -- Allowed more than 5 levels of subqueries
Refactored bump_prefix() to avoid infinite loop and allow more than
than 5 subquires by extending the alphabet to use multi-letters.
2014-12-31 08:48:28 -05:00
Tim Graham 478d6a9503 Copied BaseDatabaseCreation._digest() to SchemaEditor to remove dependency.
refs #22340.
2014-12-31 08:33:34 -05:00
Tim Graham 93d73dac91 Moved DatabaseCreation.data_types properties to DatabaseWrapper.
refs #22340.
2014-12-31 08:29:17 -05:00
Russell Keith-Magee 013c2d8d02 Renamed variables to avoid name collision with import of django.db.models. 2014-12-31 13:21:32 +08:00
Tim Graham 8082c75d18 Removed db.backends methods which only call super(). 2014-12-30 11:53:59 -05:00
Andriy Sokolovskiy 8c99b7920e Fixed #12118 -- Added shared cache support to SQLite in-memory testing. 2014-12-30 10:14:33 -05:00
Tim Graham ab4f709da4 Fixed #23581 -- Prevented extraneous DROP DEFAULT statements.
Thanks john_scott for the report and Markus Holtermann for review.
2014-12-30 07:54:05 -05:00
Markus Holtermann 623ccdd598 Fixed #23938 -- Added migration support for m2m to concrete fields and vice versa
Thanks to Michael D. Hoyle for the report and Tim Graham for the review.
2014-12-29 13:41:12 -05:00
Claude Paroz 3c5d1edb39 Fixed #22279 -- Prevented dummy backend going through DatabaseErrorWrapper
Thanks Daniel Hahler for the report and Tim Graham for the review.
2014-12-29 19:06:28 +01:00
Claude Paroz 1d24f073e6 Fixed #21255 -- Closed connections after management command ran
Thanks kabakov.as@gmail.com for the report, and Aymeric Augustin,
Simon Charette for the reviews.
2014-12-29 19:02:45 +01:00
Josh Smeaton 1cdfbde4db Fixed #23753 -- Oracle failure with Coalesce 2014-12-29 19:44:13 +11:00
Claude Paroz 2ceb10f3b0 Fixed #14180 -- Prevented unneeded index creation on MySQL-InnoDB
Thanks zimnyx for the report and Simon Charette, Tim Graham for
the reviews.
2014-12-27 12:52:44 +01:00
Josh Smeaton 4718296546 Fixed #23753 -- Added a suite of SQL Functions
Added functions and tests
Added docs and more tests
Added TextField converter to mysql backend
Aliased Value as V in example docs and tests
Removed unicode_compatible in example
Fixed console emulation in examples
2014-12-27 15:27:27 +11:00
Claude Paroz 234a2e0b6b Fixed #23866 -- Harmonized refs to Django documentation from code 2014-12-25 13:53:13 +01:00
Niclas Olofsson 3daa9d60be Fixed #10414 -- Made select_related() fail on invalid field names. 2014-12-24 14:54:30 -05:00
Tim Graham 061caa5b38 Fixed #24037 -- Prevented data loss possibility when changing Meta.managed.
The migrations autodetector now issues AlterModelOptions operations for
Meta.managed changes instead of DeleteModel + CreateModel.

Thanks iambibhas for the report and Simon and Markus for review.
2014-12-23 14:25:31 -05:00
Tim Graham 69ee7c8d76 Removed models.Field.bind() -- unused/undocumented since at least 1.0. 2014-12-23 14:23:58 -05:00
Claude Paroz 30cbd5d360 Replaced DatabaseCreation sql methods by schema editor equivalents
Also used schema editor in migrate to sync unmigrated apps (sync_apps).
Refs #22340. Thanks Tim Graham for the review.
2014-12-23 19:35:01 +01:00
Anssi Kääriäinen f233bf47dd Fixed #21414 -- Removed RelatedObject and deprecated Field.related. 2014-12-23 10:54:25 -05:00
Anssi Kääriäinen 227a4c48be Refs #2443 -- fixed format_dtdelta on SQLite
A test failed on Python 2 32-bit.
2014-12-23 07:05:44 -05:00
Marc Tamlyn 962bb9b6bd Refs #2443 -- Move the durationfield converter logic.
This reduces how frequently this logic is run significantly.

Thanks to Anssi for the suggestion.
2014-12-23 10:41:42 +00:00
Marc Tamlyn 5ca82e710e Fixed #24033 -- Use interval type on Oracle.
Use INTERVAL DAY(9) TO SECOND(6) for Durationfield on Oracle rather than
storing as a NUMBER(19) of microseconds.

There are issues with cx_Oracle which require some extra data
manipulation in the database backend when constructing queries, but it
handles the conversion back to timedelta objects cleanly.

Thanks to Shai for the review.
2014-12-23 10:38:32 +00:00
Oscar Ramirez 54085b0f9b Fixed #23998 -- Added datetime.time support to migrations questioner. 2014-12-22 07:24:54 -05:00
Josh Schneier 9a23470072 Fixed #24017 -- Added python_2_unicode_compatible in db/migrations 2014-12-21 16:10:43 -05:00
Marc Tamlyn 07728a2c2c Refs #2443 -- Fix Oracle tests for DurationField.
It helps if there are the correct number of microseconds in a second.
2014-12-20 22:04:07 +00:00
Marc Tamlyn 57554442fe Fixed #2443 -- Added DurationField.
A field for storing periods of time - modeled in Python by timedelta. It
is stored in the native interval data type on PostgreSQL and as a bigint
of microseconds on other backends.

Also includes significant changes to the internals of time related maths
in expressions, including the removal of DateModifierNode.

Thanks to Tim and Josh in particular for reviews.
2014-12-20 18:28:29 +00:00
Anssi Kääriäinen 4a2a433e7d Refs #24020 -- return expressions from get_group_by_cols() 2014-12-18 06:01:07 -07:00
Claude Paroz 108b8bf852 Fixed #24007 -- Ensure apps registry's ready before unpickling models
This prevents AppRegistryNotReady errors when unpickling Django
models from an external script.
2014-12-17 18:33:32 +01:00
Andriy Sokolovskiy 3dbbb8a89c Fixed #23983 -- Fixed a crash in migrations when adding order_with_respect_to to non-empty table. 2014-12-16 10:48:49 -05:00
Andriy Sokolovskiy d8f3b86a76 Fixed #23405 -- Fixed makemigrations prompt when adding Text/CharField.
A default is no longer required.
2014-12-15 14:41:52 -05:00
Andriy Sokolovskiy 089047331d Fixed #23987 -- Made SQLite SchemaEditor always use effective_default(). 2014-12-15 13:40:24 -05:00
Markus Holtermann aa5ef0d4fc Fixed #23822 -- Added support for serializing model managers in migration
Thanks to Shai Berger, Loïc Bistuer, Simon Charette, Andrew Godwin,
Tim Graham, Carl Meyer, and others for their review and input.
2014-12-15 08:34:15 -05:00
Markus Holtermann e37ab311fc Changed internal storing of abstract and concrete managers to be in a single list.
This commit prepares the internal manager layout to be serialized by
migrations; refs #23822.
2014-12-15 08:32:47 -05:00
Shai Berger 7c1f3901bc Fixed #23991 -- Apparently, Oracle doesn't need the decimal field converter
Thanks Josh Smeaton for review.
2014-12-15 00:07:10 +02:00
Michael Hall 895dc880eb Fixed #23812 -- Changed django.utils.six.moves.xrange imports to range 2014-12-13 12:45:58 -05:00
Carl Meyer c72eb80d11 Fixed #23455 -- Accept either bytes or text for related_name, convert to text. 2014-12-12 12:50:39 -07:00
Carl Meyer 8aaf51f94c Revert "Fixed #23455 -- Forced related_name to be a unicode string during deconstruction."
This reverts commit 45bd7b3bd9.
2014-12-12 12:50:39 -07:00