12345678910111213141516171819202122232425262728293031323334 |
- #!/usr/bin/env stack
- -- stack --resolver lts-9.21 script
- {-# LANGUAGE EmptyDataDecls #-}
- {-# LANGUAGE FlexibleContexts #-}
- {-# LANGUAGE GADTs #-}
- {-# LANGUAGE GeneralizedNewtypeDeriving #-}
- {-# LANGUAGE MultiParamTypeClasses #-}
- {-# LANGUAGE OverloadedStrings #-}
- {-# LANGUAGE QuasiQuotes #-}
- {-# LANGUAGE TemplateHaskell #-}
- {-# LANGUAGE TypeFamilies #-}
- import Control.Monad.IO.Class (liftIO)
- import Database.Persist
- import Database.Persist.Sqlite
- import Database.Persist.TH
- share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
- Person
- name String
- age Int Maybe
- deriving Show Eq
- BlogPost
- title String
- authorId PersonId
- deriving Show Eq
- |]
- main :: IO ()
- main = runSqlite ":memory:" $ do
- runMigration migrateAll
- johnId <- insert $ Person "John Doe" $ Just 35
- delete johnId
|