5

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

4

1 回答 1

1

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

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

于 2012-10-30T05:35:11.193 回答