Fixed #25694 -- Removed incorrect _uniq suffix on index names during migrations.
This commit is contained in:
parent
a84344bc53
commit
16614dcd5c
|
@ -692,7 +692,7 @@ class BaseDatabaseSchemaEditor(object):
|
||||||
if (not old_field.db_index and new_field.db_index and
|
if (not old_field.db_index and new_field.db_index and
|
||||||
not new_field.unique and not
|
not new_field.unique and not
|
||||||
(not old_field.unique and new_field.unique)):
|
(not old_field.unique and new_field.unique)):
|
||||||
self.execute(self._create_index_sql(model, [new_field], suffix="_uniq"))
|
self.execute(self._create_index_sql(model, [new_field]))
|
||||||
# Type alteration on primary key? Then we need to alter the column
|
# Type alteration on primary key? Then we need to alter the column
|
||||||
# referring to us.
|
# referring to us.
|
||||||
rels_to_update = []
|
rels_to_update = []
|
||||||
|
|
|
@ -12,6 +12,7 @@ new_apps = Apps()
|
||||||
class Author(models.Model):
|
class Author(models.Model):
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
height = models.PositiveIntegerField(null=True, blank=True)
|
height = models.PositiveIntegerField(null=True, blank=True)
|
||||||
|
weight = models.IntegerField(null=True, blank=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
apps = new_apps
|
apps = new_apps
|
||||||
|
|
|
@ -1773,7 +1773,7 @@ class SchemaTests(TransactionTestCase):
|
||||||
editor.alter_field(Author, old_field, new_field, strict=True)
|
editor.alter_field(Author, old_field, new_field, strict=True)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self.get_constraints_for_column(Author, 'name'),
|
self.get_constraints_for_column(Author, 'name'),
|
||||||
['schema_author_name_1fbc5617_like', 'schema_author_name_1fbc5617_uniq']
|
['schema_author_b068931c', 'schema_author_name_1fbc5617_like']
|
||||||
)
|
)
|
||||||
# Remove db_index=True to drop both indexes.
|
# Remove db_index=True to drop both indexes.
|
||||||
with connection.schema_editor() as editor:
|
with connection.schema_editor() as editor:
|
||||||
|
@ -1794,7 +1794,7 @@ class SchemaTests(TransactionTestCase):
|
||||||
editor.alter_field(Note, old_field, new_field, strict=True)
|
editor.alter_field(Note, old_field, new_field, strict=True)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self.get_constraints_for_column(Note, 'info'),
|
self.get_constraints_for_column(Note, 'info'),
|
||||||
['schema_note_info_4b0ea695_like', 'schema_note_info_4b0ea695_uniq']
|
['schema_note_caf9b6b9', 'schema_note_info_4b0ea695_like']
|
||||||
)
|
)
|
||||||
# Remove db_index=True to drop both indexes.
|
# Remove db_index=True to drop both indexes.
|
||||||
with connection.schema_editor() as editor:
|
with connection.schema_editor() as editor:
|
||||||
|
@ -1859,6 +1859,29 @@ class SchemaTests(TransactionTestCase):
|
||||||
['schema_tag_slug_2c418ba3_like', 'schema_tag_slug_key']
|
['schema_tag_slug_2c418ba3_like', 'schema_tag_slug_key']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_alter_field_add_index_to_integerfield(self):
|
||||||
|
# Create the table and verify no initial indexes.
|
||||||
|
with connection.schema_editor() as editor:
|
||||||
|
editor.create_model(Author)
|
||||||
|
self.assertEqual(self.get_constraints_for_column(Author, 'weight'), [])
|
||||||
|
|
||||||
|
# Alter to add db_index=True and create index.
|
||||||
|
old_field = Author._meta.get_field('weight')
|
||||||
|
new_field = IntegerField(null=True, db_index=True)
|
||||||
|
new_field.set_attributes_from_name('weight')
|
||||||
|
with connection.schema_editor() as editor:
|
||||||
|
editor.alter_field(Author, old_field, new_field, strict=True)
|
||||||
|
|
||||||
|
expected = 'schema_author_7edabf99'
|
||||||
|
if connection.features.uppercases_column_names:
|
||||||
|
expected = expected.upper()
|
||||||
|
self.assertEqual(self.get_constraints_for_column(Author, 'weight'), [expected])
|
||||||
|
|
||||||
|
# Remove db_index=True to drop index.
|
||||||
|
with connection.schema_editor() as editor:
|
||||||
|
editor.alter_field(Author, new_field, old_field, strict=True)
|
||||||
|
self.assertEqual(self.get_constraints_for_column(Author, 'weight'), [])
|
||||||
|
|
||||||
def test_alter_pk_with_self_referential_field(self):
|
def test_alter_pk_with_self_referential_field(self):
|
||||||
"""
|
"""
|
||||||
Changing the primary key field name of a model with a self-referential
|
Changing the primary key field name of a model with a self-referential
|
||||||
|
|
Loading…
Reference in New Issue