Fixed #33899 -- Fixed migration crash when removing indexed field on SQLite 3.35.5+.
Regression in 702819227fd0cdd9b581cd99e11d1561d51cbeb. Thanks cessor for the report.
This commit is contained in:
parent
fd93db97c7
commit
c0beff2123
1
AUTHORS
1
AUTHORS
|
@ -322,6 +322,7 @@ answer newbie questions, and generally made Django that much better:
|
||||||
Filip Noetzel <http://filip.noetzel.co.uk/>
|
Filip Noetzel <http://filip.noetzel.co.uk/>
|
||||||
Filip Wasilewski <filip.wasilewski@gmail.com>
|
Filip Wasilewski <filip.wasilewski@gmail.com>
|
||||||
Finn Gruwier Larsen <finn@gruwier.dk>
|
Finn Gruwier Larsen <finn@gruwier.dk>
|
||||||
|
Fiza Ashraf <fizaashraf37@gmail.com>
|
||||||
Flávio Juvenal da Silva Junior <flavio@vinta.com.br>
|
Flávio Juvenal da Silva Junior <flavio@vinta.com.br>
|
||||||
flavio.curella@gmail.com
|
flavio.curella@gmail.com
|
||||||
Florian Apolloner <florian@apolloner.eu>
|
Florian Apolloner <florian@apolloner.eu>
|
||||||
|
|
|
@ -408,10 +408,11 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor):
|
||||||
# For explicit "through" M2M fields, do nothing
|
# For explicit "through" M2M fields, do nothing
|
||||||
elif (
|
elif (
|
||||||
self.connection.features.can_alter_table_drop_column
|
self.connection.features.can_alter_table_drop_column
|
||||||
# Primary keys, unique fields, and foreign keys are not
|
# Primary keys, unique fields, indexed fields, and foreign keys are
|
||||||
# supported in ALTER TABLE DROP COLUMN.
|
# not supported in ALTER TABLE DROP COLUMN.
|
||||||
and not field.primary_key
|
and not field.primary_key
|
||||||
and not field.unique
|
and not field.unique
|
||||||
|
and not field.db_index
|
||||||
and not (field.remote_field and field.db_constraint)
|
and not (field.remote_field and field.db_constraint)
|
||||||
):
|
):
|
||||||
super().remove_field(model, field)
|
super().remove_field(model, field)
|
||||||
|
|
|
@ -26,3 +26,6 @@ Bugfixes
|
||||||
* Fixed a regression in Django 4.1 that caused a crash of
|
* Fixed a regression in Django 4.1 that caused a crash of
|
||||||
:class:`~django.db.models.expressions.Window` expressions with
|
:class:`~django.db.models.expressions.Window` expressions with
|
||||||
:class:`~django.contrib.postgres.aggregates.ArrayAgg` (:ticket:`33898`).
|
:class:`~django.contrib.postgres.aggregates.ArrayAgg` (:ticket:`33898`).
|
||||||
|
|
||||||
|
* Fixed a regression in Django 4.1 that caused a migration crash on SQLite
|
||||||
|
3.35.5+ when removing an indexed field (:ticket:`33899`).
|
||||||
|
|
|
@ -813,6 +813,17 @@ class SchemaTests(TransactionTestCase):
|
||||||
False,
|
False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_remove_indexed_field(self):
|
||||||
|
with connection.schema_editor() as editor:
|
||||||
|
editor.create_model(AuthorCharFieldWithIndex)
|
||||||
|
with connection.schema_editor() as editor:
|
||||||
|
editor.remove_field(
|
||||||
|
AuthorCharFieldWithIndex,
|
||||||
|
AuthorCharFieldWithIndex._meta.get_field("char_field"),
|
||||||
|
)
|
||||||
|
columns = self.column_classes(AuthorCharFieldWithIndex)
|
||||||
|
self.assertNotIn("char_field", columns)
|
||||||
|
|
||||||
def test_alter(self):
|
def test_alter(self):
|
||||||
"""
|
"""
|
||||||
Tests simple altering of fields
|
Tests simple altering of fields
|
||||||
|
|
Loading…
Reference in New Issue