Skip to content
This repository was archived by the owner on Feb 6, 2024. It is now read-only.

Commit ae12274

Browse files
authored
Merge pull request #242 from deckgo/nm-more-fixes
infra: re-wipe DB and cascade deck deletion
2 parents 5c20476 + 8836f39 commit ae12274

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

infra/handler/src/DeckGo/Handler.hs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1210,6 +1210,7 @@ data DbVersion
12101210
| DbVersion2
12111211
| DbVersion3
12121212
| DbVersion4
1213+
| DbVersion5
12131214
deriving stock (Enum, Bounded, Ord, Eq)
12141215

12151216
-- | Migrates from ver to latest
@@ -1347,6 +1348,43 @@ migrateFrom = \frm -> do
13471348
, ");"
13481349
]
13491350
) HE.unit HD.unit True
1351+
DbVersion5 -> do
1352+
HS.sql "DROP TABLE IF EXISTS username"
1353+
HS.sql "DROP TABLE IF EXISTS account CASCADE"
1354+
HS.sql "DROP TABLE IF EXISTS slide"
1355+
HS.sql "DROP TABLE IF EXISTS deck"
1356+
HS.statement () $ Statement
1357+
(BS8.unwords
1358+
[ "CREATE TABLE account ("
1359+
, "id TEXT PRIMARY KEY,"
1360+
, "firebase_id TEXT UNIQUE,"
1361+
, "username TEXT UNIQUE NULL"
1362+
, ");"
1363+
]
1364+
) HE.unit HD.unit True
1365+
HS.statement () $ Statement
1366+
(BS8.unwords
1367+
[ "CREATE TABLE deck ("
1368+
, "id TEXT PRIMARY KEY,"
1369+
, "name TEXT NOT NULL,"
1370+
, "background TEXT NULL,"
1371+
, "owner TEXT NOT NULL REFERENCES account (id) ON DELETE CASCADE,"
1372+
, "attributes JSON"
1373+
, ");"
1374+
]
1375+
) HE.unit HD.unit True
1376+
HS.statement () $ Statement
1377+
(BS8.unwords
1378+
[ "CREATE TABLE slide ("
1379+
, "id TEXT PRIMARY KEY,"
1380+
, "deck TEXT NOT NULL REFERENCES deck (id) ON DELETE CASCADE,"
1381+
, "index INT2 NULL,"
1382+
, "content TEXT," -- TODO: is any of this nullable?
1383+
, "template TEXT,"
1384+
, "attributes JSON"
1385+
, ");"
1386+
]
1387+
) HE.unit HD.unit True
13501388

13511389
readDbVersion :: HS.Session (Either String (Maybe DbVersion))
13521390
readDbVersion = do
@@ -1391,6 +1429,7 @@ dbVersionToText = \case
13911429
DbVersion2 -> "2"
13921430
DbVersion3 -> "3"
13931431
DbVersion4 -> "4"
1432+
DbVersion5 -> "5"
13941433

13951434
dbVersionFromText :: T.Text -> Maybe DbVersion
13961435
dbVersionFromText t =

0 commit comments

Comments
 (0)