summaryrefslogtreecommitdiff
path: root/django/db/backends/sqlite3/schema.py
diff options
context:
space:
mode:
authorAkshesh <aksheshdoshi@gmail.com>2016-06-20 21:20:05 +0530
committerTim Graham <timograham@gmail.com>2016-08-05 18:12:51 -0400
commit6a8372e6ec42eb50e05f9dbcb26b783237bdc233 (patch)
treeb0ea6c93f189009bf54bead1a7d665c27f3c6744 /django/db/backends/sqlite3/schema.py
parentd117567c7d65c3c28858c4dfc771483b182075e4 (diff)
downloaddjango-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.py8
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)