sqlite-easy-0.1.0.0: src/Database/Sqlite/Easy/Migrant.hs
{-#LANGUAGE OverloadedStrings #-}
module Database.Sqlite.Easy.Migrant
( module Database.Migrant.Driver.Class
)
where
import Database.Migrant.Driver.Class
import Database.Migrant.MigrationName
import qualified Database.Sqlite.Easy.Internal as Sqlite
import qualified Database.SQLite3 as Sqlite
instance Driver Sqlite.Database where
withTransaction action conn = Sqlite.asTransaction' conn (action conn)
initMigrations conn = do
[] <- Sqlite.run
"CREATE TABLE IF NOT EXISTS _migrations (id INTEGER PRIMARY KEY, name TEXT)"
conn
pure ()
markUp name conn = do
[] <- Sqlite.runWith
"INSERT INTO _migrations (name) VALUES (?)"
[Sqlite.SQLText $ unpackMigrationName name]
conn
pure ()
markDown name conn = do
[] <- Sqlite.runWith
"DELETE FROM _migrations WHERE name = ?"
[Sqlite.SQLText $ unpackMigrationName name]
conn
pure ()
getMigrations conn = do
result <- Sqlite.run
"SELECT name FROM _migrations ORDER BY id"
conn
return [ MigrationName name | [Sqlite.SQLText name] <- result ]