@@ -41,7 +41,9 @@ type Schema =
4141 ])
4242 ]
4343
44−setup :: Definition '[] Schema
44+type DB = '["public" ::: Schema]
45+
46+setup :: Definition '["public" ::: '[]] DB
4547setup =
4648 createTable #users
4749 ( serial `as` #id :*
@@ -57,23 +59,23 @@ setup =
5759 foreignKey #user_id #users #id
5860 OnDeleteCascade OnUpdateCascade `as` #fk_user_id )
5961
60−teardown :: Definition Schema '[]
62+teardown :: Definition DB '["public" ::: '[]]
6163teardown = dropTable #emails >>> dropTable #users
6264
63−insertUser :: Manipulation Schema '[ 'NotNull 'PGtext, 'NotNull ('PGvararray ('Null 'PGint2))]
65+insertUser :: Manipulation DB '[ 'NotNull 'PGtext, 'NotNull ('PGvararray ('Null 'PGint2))]
6466 '[ "fromOnly" ::: 'NotNull 'PGint4 ]
6567insertUser = insertRows #users
6668 (Default `as` #id :* Set (param @1) `as` #name :* Set (param @2) `as` #vec) []
6769 OnConflictDoNothing (Returning (#id `as` #fromOnly))
6870
69−insertEmail :: Manipulation Schema '[ 'NotNull 'PGint4, 'Null 'PGtext] '[]
71+insertEmail :: Manipulation DB '[ 'NotNull 'PGint4, 'Null 'PGtext] '[]
7072insertEmail = insertRows #emails
7173 ( Default `as` #id :*
7274 Set (param @1) `as` #user_id :*
7375 Set (param @2) `as` #email ) []
7476 OnConflictDoNothing (Returning Nil)
7577
76−getUsers :: Query Schema '[]
78+getUsers :: Query DB '[]
7779 '[ "userName" ::: 'NotNull 'PGtext
7880 , "userEmail" ::: 'Null 'PGtext
7981 , "userVec" ::: 'NotNull ('PGvararray ('Null 'PGint2))]
@@ -95,7 +97,7 @@ users =
9597 , User "Carole" (Just "carole@hotmail.com") [Just 3]
9698 ]
9799
98−session :: (MonadBase IO pq, MonadPQ Schema pq) => pq ()
100+session :: (MonadBase IO pq, MonadPQ DB pq) => pq ()
99101session = do
100102 liftBase $ Char8.putStrLn "manipulating"
101103 idResults <- traversePrepared insertUser ([(userName user, userVec user) | user <- users])