haskell – 如何在Yesod应用程序中的GHCi中执行数据库查询
发布时间:2021-03-16 05:48:19 所属栏目:MsSql教程 来源:网络整理
导读:例如,如何使用Yesod应用程序的模型将新用户插入数据库?或者,还有更好的方法? 我正在处理脚手架应用程序.现在我创建了App实例,并且不知道如何使用它来执行请求. :i Extradata Extra = Extra {extraCopyright :: Data.Text.Internal.Text,extraAnalytics :: M
例如,如何使用Yesod应用程序的模型将新用户插入数据库?或者,还有更好的方法? 我正在处理脚手架应用程序.现在我创建了App实例,并且不知道如何使用它来执行请求. :i Extra data Extra = Extra {extraCopyright :: Data.Text.Internal.Text,extraAnalytics :: Maybe Data.Text.Internal.Text} -- Defined in `Settings let e = Extra "asdf" Nothing let c = AppConfig {appEnv = Development,appPort = 3000,appRoot = "/",appHost = "localhost",appExtra = e} f <- makeFoundation c :t f f :: App :i App data App = App {settings :: AppConfig DefaultEnv Extra,getStatic :: Yesod.Static.Static,connPool :: persistent-1.2.3.0:Database.Persist.Class.PersistConfig.PersistConfigPool PersistConf,httpManager :: http-client-0.2.0.1:Network.HTTP.Client.Types.Manager,persistConfig :: PersistConf,appLogger :: Yesod.Core.Types.Logger} -- Defined in `Foundation' 接下来是什么? 解决方法如果您只想在ghci中执行持久性查询,则可以在不创建Yesod应用程序的情况下执行此操作.不幸的是,这取决于你想要使用的特定后端,这有很大的不同.对于SQLite: > import Database.Persist.Sqlite > import Model > pool <- createSqlitePool "yesod-test.sqlite3" 2 > runSqlite "yesod-test.sqlite3" (runMigration migrateAll) > userId <- runSqlite "yesod-test.sqlite3" (insert (User "foo@bar.com" Nothing)) 对于Postgresql: -- In Shell: $createdb yesod-test > import Database.PostgreSQL.Simple > con <- connectPostgreSQL "dbname=yesod-test" > import Database.Persist.Postgresql > pcon <- openSimpleConn con > import Model > runSqlPersistM (runMigration migrateAll) pcon > userId <- runSqlPersistM (insert (User "foo@bar.com" Nothing)) pcon > Just user <- runSqlPersistM (get userId) pcon > userIdent user (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |