Skip to content

Commit 37a8733

Browse files
committed
fix: make m003/m004/m005 migrations idempotent (duplicate column on reinstall)
1 parent 8aa9ca5 commit 37a8733

1 file changed

Lines changed: 21 additions & 15 deletions

File tree

migrations.py

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -58,27 +58,33 @@
5858

5959

6060
async def m003_add_pin_limit(db):
61-
await db.execute(
62-
"ALTER TABLE tagid.cards ADD COLUMN pin_limit INT DEFAULT NULL"
63-
)
64-
await db.execute(
65-
"ALTER TABLE tagid.cards ADD COLUMN pin TEXT DEFAULT NULL"
66-
)
67-
await db.execute(
68-
"ALTER TABLE tagid.hits ADD COLUMN pin_attempts INT NOT NULL DEFAULT 0"
69-
)
61+
for stmt in [
62+
"ALTER TABLE tagid.cards ADD COLUMN pin_limit INT DEFAULT NULL",
63+
"ALTER TABLE tagid.cards ADD COLUMN pin TEXT DEFAULT NULL",
64+
"ALTER TABLE tagid.hits ADD COLUMN pin_attempts INT NOT NULL DEFAULT 0",
65+
]:
66+
try:
67+
await db.execute(stmt)
68+
except Exception:
69+
pass
7070

7171

7272
async def m004_add_pin_blocked(db):
73-
await db.execute(
74-
"ALTER TABLE tagid.cards ADD COLUMN pin_blocked BOOL NOT NULL DEFAULT False"
75-
)
73+
try:
74+
await db.execute(
75+
"ALTER TABLE tagid.cards ADD COLUMN pin_blocked BOOL NOT NULL DEFAULT False"
76+
)
77+
except Exception:
78+
pass
7679

7780

7881
async def m005_add_card_pin_attempts(db):
79-
await db.execute(
80-
"ALTER TABLE tagid.cards ADD COLUMN pin_total_attempts INT NOT NULL DEFAULT 0"
81-
)
82+
try:
83+
await db.execute(
84+
"ALTER TABLE tagid.cards ADD COLUMN pin_total_attempts INT NOT NULL DEFAULT 0"
85+
)
86+
except Exception:
87+
pass
8288

8389

8490
async def m002_correct_typing(db):

0 commit comments

Comments
 (0)