mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #31064 -- Recreated auto-created many-to-many tables on primary key data type change on SQLite.
Both local and remote auto-created many-to-many relationships were affected.
This commit is contained in:
committed by
Mariusz Felisiak
parent
2ba55b2905
commit
a548280857
@@ -1275,6 +1275,16 @@ class OperationTests(OperationTestBase):
|
||||
Tests the AlterField operation on primary keys changes any FKs pointing to it.
|
||||
"""
|
||||
project_state = self.set_up_test_model("test_alflpkfk", related_model=True)
|
||||
project_state = self.apply_operations('test_alflpkfk', project_state, [
|
||||
migrations.CreateModel('Stable', fields=[
|
||||
('ponies', models.ManyToManyField('Pony')),
|
||||
]),
|
||||
migrations.AddField(
|
||||
'Pony',
|
||||
'stables',
|
||||
models.ManyToManyField('Stable'),
|
||||
),
|
||||
])
|
||||
# Test the state alteration
|
||||
operation = migrations.AlterField("Pony", "id", models.FloatField(primary_key=True))
|
||||
new_state = project_state.clone()
|
||||
@@ -1294,8 +1304,26 @@ class OperationTests(OperationTestBase):
|
||||
for c in connection.introspection.get_table_description(cursor, "test_alflpkfk_rider")
|
||||
if c.name == "pony_id"
|
||||
][0]
|
||||
m2m_fk_type, m2m_fk_null = [
|
||||
(c.type_code, c.null_ok)
|
||||
for c in connection.introspection.get_table_description(
|
||||
cursor,
|
||||
'test_alflpkfk_pony_stables',
|
||||
) if c.name == 'pony_id'
|
||||
][0]
|
||||
remote_m2m_fk_type, remote_m2m_fk_null = [
|
||||
(c.type_code, c.null_ok)
|
||||
for c in connection.introspection.get_table_description(
|
||||
cursor,
|
||||
'test_alflpkfk_stable_ponies',
|
||||
) if c.name == 'pony_id'
|
||||
][0]
|
||||
self.assertEqual(id_type, fk_type)
|
||||
self.assertEqual(id_type, m2m_fk_type)
|
||||
self.assertEqual(id_type, remote_m2m_fk_type)
|
||||
self.assertEqual(id_null, fk_null)
|
||||
self.assertEqual(id_null, m2m_fk_null)
|
||||
self.assertEqual(id_null, remote_m2m_fk_null)
|
||||
|
||||
assertIdTypeEqualsFkType()
|
||||
# Test the database alteration
|
||||
|
||||
Reference in New Issue
Block a user