diff options
author | Akshesh <aksheshdoshi@gmail.com> | 2016-06-20 21:20:05 +0530 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2016-08-05 18:12:51 -0400 |
commit | 6a8372e6ec42eb50e05f9dbcb26b783237bdc233 (patch) | |
tree | b0ea6c93f189009bf54bead1a7d665c27f3c6744 /django/db/backends/sqlite3/schema.py | |
parent | d117567c7d65c3c28858c4dfc771483b182075e4 (diff) | |
download | django-6a8372e6ec42eb50e05f9dbcb26b783237bdc233.tar.gz |
Fixed #26808 -- Added Meta.indexes for class-based indexes.
* Added the index name to its deconstruction.
* Added indexes to sqlite3.schema._remake_table() so that indexes
aren't dropped when _remake_table() is called.
Thanks timgraham & MarkusH for review and advice.
Diffstat (limited to 'django/db/backends/sqlite3/schema.py')
-rw-r--r-- | django/db/backends/sqlite3/schema.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/django/db/backends/sqlite3/schema.py b/django/db/backends/sqlite3/schema.py index 1a9fb1523a..36adb22584 100644 --- a/django/db/backends/sqlite3/schema.py +++ b/django/db/backends/sqlite3/schema.py @@ -156,12 +156,20 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): for index in model._meta.index_together ] + indexes = model._meta.indexes + if delete_field: + indexes = [ + index for index in indexes + if delete_field.name not in index.fields + ] + # Construct a new model for the new state meta_contents = { 'app_label': model._meta.app_label, 'db_table': model._meta.db_table, 'unique_together': unique_together, 'index_together': index_together, + 'indexes': indexes, 'apps': apps, } meta = type("Meta", tuple(), meta_contents) |