Skip to content

Commit 3b572e1

Browse files
committed
fixing a typo in the DDL statement for dropping a column default
1 parent df3e287 commit 3b572e1

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

piccolo/columns/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from .column_types import ( # noqa: F401
22
Boolean,
3+
Date,
34
Decimal,
45
Float,
56
ForeignKey,

piccolo/query/methods/alter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def querystring(self) -> QueryString:
8888
class DropDefault(AlterColumnStatement):
8989
@property
9090
def querystring(self) -> QueryString:
91-
return QueryString("DROP DEFAULT {}", self.column_name)
91+
return QueryString(f"ALTER COLUMN {self.column_name} DROP DEFAULT")
9292

9393

9494
@dataclass

tests/apps/migrations/auto/test_migration_manager.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,42 @@ def test_alter_column_set_default(self):
336336
[{"column_default": "''::character varying"}],
337337
)
338338

339+
@postgres_only
340+
def test_alter_column_drop_default(self):
341+
"""
342+
Test setting a column default to None with MigrationManager.
343+
"""
344+
# Make sure it has a non-null default to start with.
345+
manager_1 = MigrationManager()
346+
manager_1.alter_column(
347+
table_class_name="Manager",
348+
tablename="manager",
349+
column_name="name",
350+
params={"default": "Mr Manager"},
351+
old_params={"default": None},
352+
)
353+
asyncio.run(manager_1.run())
354+
355+
self.assertEqual(
356+
self._get_column_default(),
357+
[{"column_default": "'Mr Manager'::character varying"}],
358+
)
359+
360+
# Drop the default.
361+
manager_2 = MigrationManager()
362+
manager_2.alter_column(
363+
table_class_name="Manager",
364+
tablename="manager",
365+
column_name="name",
366+
params={"default": None},
367+
old_params={"default": "My Manager"},
368+
)
369+
asyncio.run(manager_2.run())
370+
371+
self.assertEqual(
372+
self._get_column_default(), [{"column_default": None}],
373+
)
374+
339375
@postgres_only
340376
def test_alter_column_add_index(self):
341377
"""

0 commit comments

Comments
 (0)