simbolos resueltos opciones hacer ejercicios ejemplos como ciclos basico haskell yesod persistent ghci

resueltos - if en haskell ejemplos



Cómo realizar consultas de bases de datos en GHCi en la aplicación Yesod (2)

¿Cómo, por ejemplo, insertar un nuevo usuario en una base de datos usando los modelos de la aplicación Yesod? ¿O hay un mejor camino?

Estoy tratando con la aplicación de scaffolded. Ahora he creado la instancia de la App y no sé cómo realizar las solicitudes que la utilizan.

: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''

¿Qué sigue?


Si solo desea hacer consultas persistentes en ghci, puede hacerlo sin crear una aplicación Yesod. Lamentablemente, hacer esto difiere bastante según el back-end específico que desee utilizar.

Para 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 "[email protected]" Nothing))

Para 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 "[email protected]" Nothing)) pcon > Just user <- runSqlPersistM (get userId) pcon > userIdent user


El andamio proporciona (al menos con yesod-bin 1.4.5) una función db en Application.hs que puede usar:

$ cabal repl ... *Application> db $ insert $ User "[email protected]" Nothing