【问题标题】:Yesod multiple persistent backends for one siteYesod 一个站点的多个持久后端
【发布时间】:2012-10-18 08:19:03
【问题描述】:

开发和生产之间的常见模式是开发网站将使用 sqlite,因为它是零设置,但随后在生产中使用 PostgresSQL 或 MySQL。但是,Yesod 生成的默认 Settings.hs 脚手架文件中,只指定了一个持久化后端。有没有办法让开发配置使用一个持久后端,而生产配置使用另一个?此外,这些应该具有不同的数据库设置 YAML 文件,以便可以为 sqlite 配置简单的文件名,但生产数据库凭据永远不会访问 VCS 存储库。

【问题讨论】:

    标签: haskell yesod


    【解决方案1】:

    我一般不喜欢这种做法,因为数据库引擎之间可能存在细微差别,直到生产时才会出现。 (这可以通过在中间放置一个登台服务器来缓解。)

    无论如何,您当然可以通过条件编译来做到这一点,尽管脚手架站点并非旨在以开箱即用的方式工作。只需查找引用特定后端的所有位置,并使其以 DEVELOPMENT CPP 变量为条件。

    【讨论】:

    • 特别是,您要更改 backend/Application.hs(包含 yml 文件)和 backend/Settings.hs(导入和 PersistConfig 定义)。示例提交:github.com/ezyang/hpd3js/commit/…
    猜你喜欢
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多