Yesod为一个站点提供多个持久后端

时间:2012-10-29 00:26:54

标签: haskell yesod

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

1 个答案:

答案 0 :(得分:1)

我一般不喜欢这种做法,因为在生产之前不会出现的数据库引擎之间可能存在细微差别。 (这可以通过在其间安装临时服务器来缓解。)

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