Tim Graham
64e75c47ef
Fixed #23014 -- Infinite migration regression with unique/index_together.
2014-07-24 14:27:10 -04:00
Tim Graham
66211b4b75
Silenced a Python 2 ImportWarning in a migrations test.
2014-07-24 09:24:52 -04:00
Jeroen Dekkers
3582698c13
Fixed #23071 -- Use last migration's name in dependency to other app
...
Changed the autodetector to lookup the name of the other app's last
migration in the graph and use that as dependency instead of using
__latest__.
2014-07-22 01:03:02 +02:00
Andrew Godwin
e24e9e0438
Fixed #23014 : Renaming not atomic with unique together
2014-07-21 11:36:34 +01:00
Andrew Godwin
dcb4ed5170
Fixed #22975 : Don't call rename SQL if not needed
2014-07-21 10:14:00 +01:00
Andrew Godwin
145d231782
Fixed #23041 : Bad base dependencies for proxy models
2014-07-16 09:59:08 -07:00
Tim Graham
0154965392
Fixed #23013 -- Fixed removing unique_together/index_together constraints in migrations.
...
Thanks melinath for the report.
2014-07-15 15:20:59 -04:00
Tim Graham
9a2ab62977
Fixed #23008 -- Fixed typo causing bad migration dependencies.
...
Thanks semenov for the report and Florian for investigation.
2014-07-15 08:48:29 -04:00
Huu Nguyen
f7a78f9bba
Fixed #22791 -- Invoke interactive questioner only for conflicts in specified apps.
...
Thanks bendavis78 for the report and Tim Graham for the review.
2014-07-14 11:00:49 -04:00
Andrew Godwin
9e5a37c82d
Fix comment
2014-07-10 10:00:31 -07:00
Andrew Godwin
008bff92b7
Fixed #22970 : Incorrect dependencies for existing migrated apps
2014-07-09 23:53:43 -07:00
Loic Bistuer
2572c07cc6
Fixed #22906 -- Added a more helpful repr to migrations' ModelState.
...
Thanks Collin Anderson for the report and original patch.
2014-07-06 14:56:18 +07:00
Andrew Godwin
f751109cb2
Merge pull request #2881 from charettes/ticket-22943-compiled-regex-deconstruction
...
Fixed #22943 -- Correctly serialize compiled regexes.
2014-07-05 16:37:10 -07:00
Andrew Godwin
80a12f21e3
Fixed #22960 : Bad handling of relations as PKs in autodetector
2014-07-05 16:33:03 -07:00
Simon Charette
35c2c37041
Fixed #22943 -- Correctly serialize compiled regexes.
...
Thanks to antialiasis at gmail dot com for the patch.
2014-07-04 13:34:20 -04:00
Colin Wood
27ee608b55
Fixed #22940 -- Added missing string iterpolation parameters in migrations.writer error.
...
Forwardport of f5740af868
from stable/1.7.x
2014-07-02 12:45:02 -04:00
Tim Graham
70576740b0
Fixed #22917 -- Fixed typo in AlterIndexTogether.describe().
2014-06-27 10:34:48 -04:00
Tim Graham
e0cd07ec2f
Fixed #22903 -- Fixed migration generation if index_together or unique_together is removed from a model.
2014-06-25 10:02:12 -04:00
Andrew Godwin
fe262c0b84
Fixed #22708 : Typo in autodetector base dependency gen
2014-06-23 20:48:33 -07:00
Tim Graham
908160f692
Fixed test failures introduced by refs #22881 .
2014-06-23 09:59:36 -04:00
Chris Beaven
21c496ea52
Fixed #22881 -- Better soft_applied migration detection
2014-06-23 13:36:22 +12:00
Andrew Godwin
b30d32ff24
Fixed #22875 : Optimizer did not take through= into account.
2014-06-22 11:23:45 -07:00
Tim Graham
9a46836a0c
Moved a line outside of try/except to prevent an error in finally.
...
Thanks Ian Foote.
2014-06-20 09:13:34 -04:00
Huu Nguyen
fbb684d95e
Fixed #22862 -- Added --noinput option to makemigrations.
...
Thanks artortenburger for the report.
2014-06-20 08:55:02 -04:00
Alex Gaynor
d015c9d11c
Fixed several flake8 errors
2014-06-18 07:47:13 -07:00
Andrew Godwin
2cee1d4642
Fixed #22861 : Internal migrations done first so __first__ works
...
Thanks to Chris Beaven.
2014-06-17 23:28:35 -07:00
Andrew Godwin
09b63a7cce
Fix __latest__ to actually resolve to the latest migration
2014-06-17 22:12:31 -07:00
Andrew Godwin
405b9dcd8b
Fix broken test
2014-06-17 21:32:23 -07:00
Andrew Godwin
8d2ac948a9
Fixed #22853 : Swapped models are now ignored for migration operations.
2014-06-17 17:45:38 -07:00
Andrew Godwin
77ff4a9360
Fix previous commit on python 2
2014-06-17 09:56:22 -07:00
Víðir Valberg Guðmundsson
3a6cb9f497
Fixed #22577 : Python 3 broke on non-module migrations directory
2014-06-17 18:21:38 +02:00
Tim Graham
317c480c04
Removed some u'' prefixes to fix Python 3.2.
2014-06-16 18:49:37 -04:00
Tim Graham
b341f33697
Added database migration for contrib.auth.
...
refs #22170 .
2014-06-16 16:21:37 -04:00
Tim Graham
eb8600a656
Added database migration for contrib.contenttypes.
...
Moved contenttypes tests to allow them to run correctly in the presence of
migrations. refs #22170 .
2014-06-16 15:03:00 -04:00
Andrew Godwin
067b9668fb
Fixed #22783 : Make sure swappable models come first in creation
2014-06-16 10:20:05 -07:00
Matthew Schinckel
bb39037fcb
Fixed #22788 -- Ensured custom migration operations can be written.
...
This inspects the migration operation, and if it is not in the
django.db.migrations module, it adds the relevant imports to the
migration writer and uses the correct class name.
2014-06-16 12:28:52 -04:00
Tim Graham
808388c28c
Removed usaged of contrib.sessions as a placeholder in migration tests.
...
Without this, we're unable to add actual migrations for the app.
2014-06-16 10:15:19 -04:00
Andrew Godwin
c8c79367a2
Fixed #22844 : Duplicate SQL for SQLite FKs
2014-06-16 00:27:32 -07:00
Alex Gaynor
d17a4cb037
Fixed several flake8 errors
2014-06-15 20:45:15 -04:00
Andrew Godwin
c1276785f9
Fixed #22568 : Better proxy model support in migrations
2014-06-15 16:01:49 -07:00
Andrew Godwin
a8ce5fdc28
Fixed #22470 : Full migration support for order_with_respect_to
2014-06-15 14:56:51 -07:00
Andrew Godwin
a58f49d104
Persist non-schema-relevant Meta changes in migrations
2014-06-15 12:34:02 -07:00
Andrew Godwin
f717ef083a
Fixed #22833 : Autodetector not doing through mapping correctly
2014-06-15 12:06:48 -07:00
Andrew Godwin
7b17350a1b
Fixed #22823 (and partly #22563 ) - FKs from unmigrated apps breaking state.
...
Thanks to bendavis78 for the test and diagnostic work.
2014-06-12 10:22:43 -07:00
Andrew Godwin
f146e70cb1
Remove overzealous migration flushes from migration test suite
2014-06-09 09:52:23 -07:00
Andrew Godwin
3f91238adf
Fixed #22777 : Add dependency on through for autodetected M2M adds
2014-06-08 17:12:59 -07:00
Andrew Godwin
4ce7a6bc84
Fixed #22750 , #22248 : Model renaming now also alters field FKs
2014-06-07 18:18:02 -07:00
Andrew Godwin
6fd455adfc
Fixed #22436 : More careful checking on method ref'ce serialization
2014-06-07 17:05:51 -07:00
Andrew Godwin
aa12ea05ce
Rewrote migration autodetector to involve actual computer science.
...
Fixes #22605 , #22735 ; also lays the ground for some other fixes.
2014-06-05 23:25:35 -07:00
Andrew Godwin
5826dc5282
Merge pull request #2736 from SmileyChris/migration-run_before
...
Fixed #22725 - Migration.run_before does nothing
2014-06-05 20:29:26 -07:00
Simon Charette
7a38f88922
Fixed #22659 -- Prevent model states from sharing field instances.
...
Thanks to Trac alias tbartelmess for the report and the test project.
2014-06-01 15:10:38 -04:00
Moayad Mardini
6f4d7f41b1
Improved the test for refs #22682 .
...
Thanks apollo13 for the review.
2014-05-30 11:00:13 -04:00
Andrew Godwin
9cbf7f25ef
Fix additional test failures caused by migration pollution
2014-05-29 16:44:12 -07:00
Moayad Mardini
56cfa508c7
Fixed #22682 -- `makemigrations` will create `MIGRATION_MODULES` package
...
`makemigrations` will automatically create the package specified
in `MIGRATION_MODULES` if it doesn't already exist.
Thanks ovidiuc4 for the report.
2014-05-30 01:23:09 +03:00
Chris Beaven
45fa520187
Implement Migration.run_before
...
This attribute (used for reverse dependencies) was previously declared
and mentioned in the code, but never actually used.
2014-05-29 22:42:11 +12:00
Moayad Mardini
2e613ea5c5
Fixed #22675 -- makemigrations --dry-run to output migrations to stdout.
...
`makemigrations --dry-run` will output the complete migrations file
that would be written if it's used along with `--verbosity 3`.
2014-05-27 00:40:55 +03:00
Moayad Mardini
63fc91b3ca
Fixed #22676 -- makemigrations --dry-run should not ask for defaults
...
Made the fix in InteractiveMigrationQuestioner class code, rather than
MigrationAutodetector, because --dry-run shouldn't affect whether
MigrationAutodetector will detect non-nullable fields, but the
questioner should skip the question and returns a None for default
(since that won't be used anyway) if --dry-run is used.
2014-05-24 09:56:18 -04:00
Baptiste Mispelon
f01d2a8f9b
Fixed tuple serialization test.
...
Thanks to rockallite for the report.
2014-05-23 14:50:10 +02:00
Huu Nguyen
f851a954ac
Fixed #22602 -- Improved code coverage of makemigrations command tests.
2014-05-23 08:05:46 -04:00
Flavio Curella
beec05686c
Fixed #22667 -- Replaced leader/follower terminology with primary/replica
2014-05-22 11:59:17 -04:00
Moayad Mardini
ad994a3c5b
Fixed #22679 -- Fixed empty tuple serialization in MigrationWriter.
...
Thanks rockallite.wulf for the report.
2014-05-22 16:15:09 +02:00
Marc Tamlyn
6ab67919ac
Made nested deconstruction support both forms of deconstruct()
...
Nested deconstruction should (silently) handle Field.deconstruct() as
well as other arbitrary deconstructable objects. This allows having a
field in the deconstruction of another field.
2014-05-22 13:23:51 +01:00
Tim Graham
dfeef8e147
Skipped a migrations test that's not supported on MySQL + Python 3.
2014-05-21 06:54:24 -04:00
Alex Gaynor
8a95b4fca7
Merge pull request #2692 from fcurella/patch-5
...
#22667 replaced occurrences of master/slave terminology with leader/follower
2014-05-20 09:37:04 -07:00
Flavio Curella
73a57b06f9
replaced occurrences of master/slave terminology with leader/follower
2014-05-20 11:35:16 -05:00
Andrew Godwin
03900a02d5
Fixed #22432 : SQLite M2M repointing now works. Thanks to xelnor.
2014-05-20 16:25:59 +01:00
Andrew Godwin
4e32e47348
Merge pull request #2634 from loic/ticket22424
...
Fixed #22424 -- MySQL doesn't accept migrations' one-off default values ...
2014-05-20 14:25:59 +01:00
Huu Nguyen
44304cf04e
Fixed #22661 -- Move makemigrations tests to the proper class
2014-05-19 20:16:36 -07:00
Loic Bistuer
5789ff7330
Failing testcases for #22649 .
2014-05-18 12:46:12 +07:00
Loic Bistuer
1d3d01b4f7
Fixed #22424 -- Fixed handling of default values for TextField/BinaryField on MySQL.
...
Thanks syphar for the review and suggestions.
2014-05-18 11:58:16 +07:00
Claude Paroz
e520a73eee
Harmonized some PEP 0263 coding preambles
2014-05-15 19:58:41 +02:00
Andrew Godwin
fdbd29dd27
Tests for #22325
2014-05-08 21:48:10 -07:00
Aymeric Augustin
b1432bfc22
Appeased flake8.
2014-05-08 21:49:54 +02:00
Andrew Godwin
5a917cfef3
Fixed #22496 : Data migrations get transactions again!
2014-05-07 14:28:34 -07:00
Tim Graham
3818d96426
Fixed #22435 -- Prevented adding a ManyToManyField from prompting for a default.
...
Thanks andrewsg for the report.
2014-05-02 20:46:47 -04:00
Chris Beaven
a0c4b8465d
Fix migration autodector to work correctly with custom deconstructed values
2014-05-02 15:08:19 +12:00
Tim Graham
45c2d1f5d9
flake8 fixes.
2014-04-30 18:33:46 -04:00
Andrew Godwin
e049c88603
Cleanup failing test w/contenttypes and remove useless graph load
2014-04-30 15:11:52 -07:00
Andrew Godwin
8f6dff372b
Fixed #22485 : Include all unmigrated apps in project state by default.
2014-04-30 12:25:12 -07:00
Claude Paroz
7c54f8cced
Fixed #22474 -- Made migration recorder aware of multiple databases
...
Thanks Tim Graham for the review.
2014-04-30 16:53:20 +02:00
Simon Charette
390f888745
Fixed #22447 -- Make sure custom model bases can be migrated.
...
Thanks to cdestigter for the report.
2014-04-29 09:43:08 -04:00
Aymeric Augustin
8b5b199e20
Fixed #3214 -- Stopped parsing SQL with regex.
...
Avoided introducing a new regex-based SQL splitter in the migrations
framework, before we're bound by backwards compatibility.
Adapted this change to the legacy "initial SQL data" feature, even
though it's already deprecated, in order to facilitate the transition
to migrations.
sqlparse becomes mandatory for RunSQL on some databases (all but
PostgreSQL). There's no API to provide a single statement and tell
Django not to attempt splitting. Since we have a more robust splitting
implementation, that seems like a good tradeoff. It's easier to add a
new keyword argument later if necessary than to remove one.
Many people contributed to both tickets, thank you all, and especially
Claude for the review.
Refs #22401 .
2014-04-26 17:46:23 +02:00
Claude Paroz
ab90c4707b
Fixed table cleanup in GIS migration tests
2014-04-21 23:08:00 +02:00
Aymeric Augustin
428c0bbe1b
Appeased flake8 2.1.0.
2014-04-21 12:27:34 +02:00
Tim Graham
471fb04a30
Fixed flake8 errors.
2014-04-20 13:08:04 -04:00
Andrew Gorcester
956bd64424
Fixed #22397 -- Issues removing M2M field with explicit through model
...
Changed the migration autodetector to remove models last so that FK
and M2M fields will not be left as dangling references. Added a check
in the migration state renderer to error out in the presence of
dangling references instead of leaving them as strings. Fixed a bug
in the sqlite backend to handle the deletion of M2M fields with
"through" models properly (i.e., do nothing successfully).
Thanks to melinath for report, loic for tests and andrewgodwin and
charettes for assistance with architecture.
2014-04-18 16:44:47 -04:00
Simon Charette
0d397e5a5b
Revert "Fixed #22397 -- Issues removing M2M field with explicit through model."
...
This reverts commit 00e3b9a2a9
.
It's causing a regression when tested with the proxy_model_inheritance tests.
2014-04-18 01:27:30 -04:00
Andrew Gorcester
00e3b9a2a9
Fixed #22397 -- Issues removing M2M field with explicit through model.
...
Changed the migration autodetector to remove models last so that FK
and M2M fields will not be left as dangling references. Added a check
in the migration state renderer to error out in the presence of
dangling references instead of leaving them as strings. Fixed a bug
in the sqlite backend to handle the deletion of M2M fields with
"through" models properly (i.e., do nothing successfully).
Thanks to melinath for report, loic for tests and andrewgodwin and
charettes for assistance with architecture.
2014-04-17 12:54:35 -04:00
Motiejus Jakštys
0e45669fa9
Fixed #22460 -- Explicity remove constraints when dropping a related field.
2014-04-16 15:38:31 -04:00
Simon Charette
72d3889db4
Fixed #22350 -- Consistently serialize bytes and text in migrations.
...
Thanks to @treyhunner and Loïc for their suggestions and review.
2014-04-13 18:22:26 -04:00
Simon Charette
074d3183d9
Fixed #22363 -- Correctly serialize `django.utils.datetime_safe` objects.
...
Thanks to linovia for the report.
2014-04-03 14:54:16 -04:00
Loic Bistuer
0fd51cf0bd
Fixed #22319 -- Fixed migration external dependencies when there are internal dependencies.
2014-03-31 06:50:38 -04:00
Loic Bistuer
a449e7feec
Fixed #22359 -- Changing M2M field to blank=True failed on sqlite.
2014-03-31 06:13:19 -04:00
Tim Graham
42336c84a0
Fixed #22331 -- Made MigrationAutodetector ignore unmanaged models.
...
This commit reverts 69d4b1c
and tackle the issue from a different angle.
Models remain present in the project state, but are now ignored by the
autodetector.
2014-03-25 18:30:58 -04:00
Loic Bistuer
69d4b1c3ea
Fixed #22331 -- Fixed migrations ProjectState to ignore unmanaged models.
2014-03-25 10:33:44 -04:00
Stephen Burrows
35ed792cf2
Fixed #22300 -- Fixed crash in migrations when changing non-relational field to relational.
2014-03-25 07:46:15 -04:00
Andrew Godwin
81f5408c7a
Fixed #22275 : unique_together broken if ForeignKey split into new file.
...
Thanks to bak1an for the patch.
2014-03-19 21:23:21 -07:00
Andrew Godwin
f4d91638fc
Remove failing test while we fix the underlying bug
2014-03-11 10:33:57 -07:00
Chris Beaven
107c9f5453
Fix AlterField migrations that are related to a RenameModel migration
2014-03-11 17:13:26 +13:00
Chris Beaven
40f6ca54f8
Fix autodetector creation of RenameModel migration to capitalize model names
2014-03-11 12:23:45 +13:00
Chris Beaven
7feb70eef3
Fixed #22239 -- Add auto detection of renamed models
2014-03-10 13:55:44 +13:00
Andrew Godwin
abccbcf52d
Fixed #21843 : Remove explicit ID column setting in test
2014-03-08 16:04:21 -08:00
Andrew Godwin
cdf6eba181
Merge pull request #2315 from bendavis78/issues/22073
...
Fixed #22073 - Ensure CreateTable operation handles backwards migration correctly when M2M fields are present
2014-03-08 15:44:45 -08:00
Andrew Godwin
e46e15e5a1
Fixed #22204 : Bad circular-dep-breaking if more than one per run
2014-03-06 13:22:42 -08:00
Alex Gaynor
a248c88372
Fixed three small flake8 violations.
2014-03-04 15:13:15 -08:00
Loic Bistuer
6436f1fad9
Fixed #21893 -- ModelState didn't account for MTI parents inherited from abstract models.
2014-03-05 03:25:14 +07:00
Loic Bistuer
99291f5db0
Added tests for MTI in RunPython.
2014-03-05 03:17:52 +07:00
Anubhav Joshi
bb2ca9fe6c
Fixed #22172 -- Allowed index_together to be a single list (rather than list of lists)..
...
Thanks EmilStenstrom for the suggestion.
2014-03-01 15:44:42 -05:00
Baptiste Mispelon
c679cb7f60
Fixed #22168 -- Fixed migrations failing on sqlite when column names are SQL keywords
...
Thanks to trac user fallen_flint for the report and initial patch.
2014-03-01 13:45:45 +01:00
Alex Gaynor
a8a5c31966
Two whitespace changes to appease flake8
2014-02-23 11:07:52 -06:00
Andrew Gorcester
202bf69c2f
Fixed #22095 -- Enabled backward migrations for RunPython operations
...
Added reversible property to RunPython so that migrations will not
refuse to reverse migrations including RunPython operations, so long as
reverse_code is set in the RunPython constructor. Included tests to
check the reversible property on RunPython and the similar RunSQL.
2014-02-23 09:30:02 +01:00
Ben Davis
df2652c448
Fixed #22073 - Ensure CreateTable operation handles backwards migration correctly when M2M fields are present
2014-02-17 16:51:40 -06:00
Andrew Godwin
3c547a423f
Merge pull request #2270 from bmispelon/ticket-22030
...
Fixed #22030 -- Don't assume that all fields have a swappable_setting at...
2014-02-17 01:16:49 +00:00
Anton Baklanov
0bd92d68ad
Fixed #22035 -- reordered migration operations
...
Now AddField actions appear in operations list before AlterUniqueTogether
actions.
Thanks to SmileyChris for the report.
2014-02-14 20:00:39 -05:00
Baptiste Mispelon
6873eeeefb
Fixed #22030 -- Don't assume that all fields have a swappable_setting attribute.
2014-02-13 17:43:21 +01:00
Baptiste Mispelon
c3434fed5b
Removed test for migration check forgotten in 7e941ba67c
.
2014-02-13 09:31:39 +01:00
Andrew Godwin
bad9456b9c
Fix my slightly hasty autodetector changes
2014-02-12 17:22:50 +00:00
Andrew Godwin
97a8fd4682
Fixed #21954 : Raise nice error when serializing datetimes with timezones
2014-02-09 11:17:38 +00:00
Tim Graham
4f8e8a6ec2
Removed unused imports + other flake8 fixes.
2014-02-09 06:13:10 -05:00
Andrew Godwin
98dd8dd02e
Fixed #21892 : RunPython no longer accepts strings
2014-02-09 10:54:02 +00:00
mlavin
a3e0d7753d
Adding tests for check_migrations.
2014-02-08 09:05:27 -05:00
Michael Manfre
ad913f242d
Fix regress added to migrations.test_operations.test_alter_field_pk_fk
2014-02-02 15:44:01 -05:00
Michael Manfre
3ffeb93186
Ensure cursors are closed when no longer needed.
...
This commit touchs various parts of the code base and test framework. Any
found usage of opening a cursor for the sake of initializing a connection
has been replaced with 'ensure_connection()'.
2014-02-02 12:47:21 -05:00
Alex Gaynor
2ba09c000d
Added some missing whitespace around arithmetic operators
2014-01-22 09:21:05 -06:00
Markus Holtermann
047394f79c
Fixed #21852 -- Make migration writer serialize iterators
2014-01-22 09:21:54 +01:00
Alex Gaynor
be8173af51
Fixed a small collection of flake8 violations that had snuck in
2014-01-19 21:15:31 -06:00
Russell Keith-Magee
d818e0c9b2
Fixed #16905 -- Added extensible checks (nee validation) framework
...
This is the result of Christopher Medrela's 2013 Summer of Code project.
Thanks also to Preston Holmes, Tim Graham, Anssi Kääriäinen, Florian
Apolloner, and Alex Gaynor for review notes along the way.
Also: Fixes #8579 , fixes #3055 , fixes #19844 .
2014-01-20 10:45:21 +08:00
Andrew Godwin
51832c8aec
Remove other unicode literal
2014-01-19 18:57:59 +00:00
Andrew Godwin
b1fc8c19b2
Remove unicode prefix that snuck in
2014-01-19 18:57:06 +00:00
Andrew Godwin
3f1a008266
Fixed #21664 : Multi-table inheritance was duplicating _ptr fields
2014-01-19 18:35:49 +00:00
Andrew Godwin
af4a8478e4
Fixed #21783 : (again) Found second source of bug, also squashed it.
2014-01-19 17:43:31 +00:00
Loic Bistuer
374faa4721
Fixed #21323 -- Improved readability of serialized Operation.
2014-01-20 00:16:07 +07:00
Andrew Godwin
c9de1b4a55
Implement swappable model support for migrations
2014-01-19 16:43:12 +00:00
Andrew Godwin
9ae17d994b
Make test stronger to hopefully fix odd Jenkins failure
2014-01-08 21:20:29 +00:00
Andrew Godwin
64887c644a
Fixed #21142 : Dependency failures on unmigrated apps.
2014-01-08 13:00:12 +00:00
Aymeric Augustin
7ed20e0153
Populated Apps instances immediately by default.
2013-12-30 22:11:17 +01:00
Aymeric Augustin
38ce41103f
Used Apps.clear_cache() in tests that alter the app registry.
2013-12-29 21:25:28 +01:00
Aymeric Augustin
1716b7ce5a
Renamed AppCache to Apps.
...
Also renamed app_cache to apps and "app cache" to "app registry".
Deprecated AppCache.app_cache_ready() in favor of Apps.ready().
2013-12-24 12:25:17 +01:00
Aymeric Augustin
82a35e24d4
Replaced ad-hoc caching of get_models with lru_cache.
...
Invalidate properly the cache whenever all_models or app_configs change.
This fixes some isolation issues in the test suite.
2013-12-24 10:56:50 +01:00
Aymeric Augustin
e32095616c
Imported override_settings from its new location.
2013-12-23 21:37:56 +01:00
Aymeric Augustin
da16bb30ff
Dropped AppCache._empty, _with_app and _without_app.
...
It's now easier to achieve the same effect with modify_settings or
override_settings.
2013-12-23 21:37:56 +01:00
Aymeric Augustin
2fef9e5375
Moved apps back in the toplevel django namespace.
...
Reverted 4a56a93cc4
.
2013-12-22 11:39:55 +01:00
Aymeric Augustin
2239081ff1
Expurged INSTALLED_APPS from code and tests.
...
Except the app cache code and a few specific tests, of course.
2013-12-22 11:39:18 +01:00
Aymeric Augustin
f25fa9d859
Deprecated load_app().
...
Adjusted several tests that used it to add apps to the app cache and
then attempted to remove them by manipulating attributes directly.
Also renamed invalid_models to invalid_models_tests to avoid clashing
application labels between the outer and the inner invalid_models
applications.
2013-12-22 11:39:17 +01:00
Aymeric Augustin
742ed9878e
Refactored registration of models.
...
Got rid of AppConfig._stub. As a side effect, app_cache.app_configs now
only contains entries for applications that are in INSTALLED_APPS, which
is a good thing and will allow dramatic simplifications (which I will
perform in the next commit). That required adjusting all methods that
iterate on app_configs without checking the "installed" flag, hence the
large changes in get_model[s].
Introduced AppCache.all_models to store models:
- while the app cache is being populated and a suitable app config
object to register models isn't available yet;
- for applications that aren't in INSTALLED_APPS since they don't have
an app config any longer.
Replaced get_model(seed_cache=False) by registered_model() which can be
kept simple and safe to call at any time, and removed the seed_cache
argument to get_model[s]. There's no replacement for that private API.
Allowed non-master app caches to go through populate() as it is now
safe to do so. They were introduced in 1.7 so backwards compatibility
isn't a concern as long as the migrations framework keeps working.
2013-12-22 11:39:17 +01:00
Aymeric Augustin
0242c56fd8
Deborgified the app cache.
...
Improved Andrew's hack to create temporary app caches to handle
migrations. Now the main app cache has a "master" flag set to True
(which is a non-default keyword argument, thus unlikely to be used by
mistake). Other app cache instances have "master" set to False.
The only sanctioned way to access the app cache is by importing
django.core.apps.app_cache.
If you were instanciating an app cache and relying on the Borg pattern,
you'll have to refactor your code.
2013-12-17 21:53:18 +01:00
Aymeric Augustin
6e895f9e06
Removed superfluous models.py files.
...
Added comments in the three empty models.py files that are still needed.
Adjusted the test runner to add applications corresponding to test
labels to INSTALLED_APPS even when they don't have a models module.
2013-12-17 11:16:48 +01:00
Aymeric Augustin
4a56a93cc4
Moved the new app cache inside core.
2013-12-17 10:17:46 +01:00
Aymeric Augustin
ebda5800ae
Simplified register_models.
...
Since it's never called with more than one model at a time the current
signature is needlessly complicated.
2013-12-17 10:17:45 +01:00
Aymeric Augustin
b55282b98b
Moved list of models inside AppConfig instances.
...
This commit is a refactoring with no change of functionality, according
to the following invariants:
- An app_label that was in app_configs and app_models stays in
app_config and has its 'installed' attribute set to True.
- An app_label that was in app_models but not in app_configs is added to
app_configs and has its 'installed' attribute set to True.
As a consequence, all the code that iterated on app_configs is modified
to check for the 'installed' attribute. Code that iterated on app_models
is rewritten in terms of app_configs.
Many tests that stored and restored the state of the app cache were
updated.
In the long term, we should reconsider the usefulness of allowing
importing models from non-installed applications. This doesn't sound
particularly useful, can be a trap in some circumstances, and causes
significant complexity in sensitive areas of Django.
2013-12-17 10:17:44 +01:00