Skip to content

Commit 86b876a

Browse files
committed
fixed bug with SchemaSnapshot when dropping columns, and added test
1 parent 7a3b0ce commit 86b876a

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

piccolo/apps/migrations/auto/schema_snapshot.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ def get_snapshot(self) -> t.List[DiffableTable]:
6262
)
6363
for drop_column in drop_columns:
6464
table.columns = [
65-
i for i in table.columns if i._meta.name != drop_column
65+
i
66+
for i in table.columns
67+
if i._meta.name != drop_column.column_name
6668
]
6769

6870
###############################################################

tests/apps/migrations/auto/test_schema_snapshot.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,29 @@ def test_rename_column(self):
103103
snapshot = schema_snapshot.get_snapshot()
104104
self.assertTrue(snapshot[0].columns[0]._meta.name == "label")
105105

106+
def test_drop_column(self):
107+
"""
108+
Test dropping columns.
109+
"""
110+
manager_1 = MigrationManager()
111+
manager_1.add_table(class_name="Manager", tablename="manager")
112+
manager_1.add_column(
113+
table_class_name="Manager",
114+
tablename="manager",
115+
column_name="name",
116+
column_class_name="Varchar",
117+
params={"length": 100},
118+
)
119+
120+
manager_2 = MigrationManager()
121+
manager_2.drop_column(
122+
table_class_name="Manager", tablename="manager", column_name="name"
123+
)
124+
125+
schema_snapshot = SchemaSnapshot(managers=[manager_1, manager_2])
126+
snapshot = schema_snapshot.get_snapshot()
127+
self.assertEqual(len(snapshot[0].columns), 0)
128+
106129
def test_alter_column(self):
107130
"""
108131
Test altering columns.

0 commit comments

Comments
 (0)