Skip to content

Commit 36959e8

Browse files
committed
fixing bug with multiple alter statements
1 parent d505378 commit 36959e8

File tree

2 files changed

+24
-7
lines changed

2 files changed

+24
-7
lines changed

piccolo/query/methods/alter.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class Add(AlterStatement):
6060
@property
6161
def querystring(self) -> QueryString:
6262
self.column._meta.name = self.name
63-
return QueryString("ADD {}", self.column.querystring)
63+
return QueryString("ADD COLUMN {}", self.column.querystring)
6464

6565

6666
@dataclasses.dataclass
@@ -218,8 +218,7 @@ def querystring(self) -> QueryString:
218218
)
219219
]
220220

221-
for a in alterations:
222-
query += " {}"
221+
query += ",".join([" {}" for i in alterations])
223222

224223
return QueryString(query, *alterations)
225224

tests/table/test_alter.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,28 @@ def test_unique(self):
9090
self.assertTrue(len(response), 2)
9191

9292

93+
class TestMultiple(DBTestCase):
94+
"""
95+
Make sure multiple alter statements work correctly.
96+
"""
97+
98+
def test_multiple(self):
99+
self.insert_row()
100+
101+
query = (
102+
Manager.alter()
103+
.add_column("column_a", Integer(default=0, null=True))
104+
.add_column("column_b", Integer(default=0, null=True))
105+
)
106+
query.run_sync()
107+
108+
response = Band.raw("SELECT * FROM manager").run_sync()
109+
110+
column_names = response[0].keys()
111+
self.assertTrue("column_a" in column_names)
112+
self.assertTrue("column_b" in column_names)
113+
114+
93115
class TestNull(DBTestCase):
94116
def test_null(self):
95117
pass
96-
97-
98-
class TestMultiple(DBTestCase):
99-
pass

0 commit comments

Comments
 (0)