2014-01-12 30 views
3

我正在開發一個使用Yesod 1.2的Web應用程序,我使用的是websockets。向websocket發出的請求需要查詢我的數據庫,並且我知道他們必須位於PersistStore實例中。據我所知,我不能使用runDB,因爲websockets請求處理程序不在monad中。相反,爲此,我可以使用與this問題的答案中的代碼類似的內容。有沒有像runDB但Handler monad之外的東西?

哪個是在腳手架網站中獲得PersistStore monad內最清潔的方法?我知道我可以用硬編碼的連接字符串輕鬆拍攝runSqlite並完成它,但我認爲這很難看。如果由於某種原因我想更改數據庫引擎,我不想修改與數據庫建立連接的每一段代碼。

我正在尋找一種使用腳手架站點在連接到數據庫時不會重複執行代碼的方法。

回答

1

可能運行這個最好的方法是相同的方式,腳手架網站runs the migration code

-- Perform database migration using our application's logging settings. 
runLoggingT 
    (Database.Persist.runPool dbconf (runMigration migrateAll) p) 
    (messageLoggerSource foundation logger) 
+0

感謝邁克爾,這是我一直在尋找。 – rul