Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
开发和生产之间的常见模式是开发网站将使用 sqlite,因为它是零设置,然后在生产中使用 PostgresSQL 或 MySQL。但是,Yesod 生成的默认 Settings.hs 脚手架文件中,只指定了一个持久化后端。有没有办法让开发配置使用一个持久后端,而生产配置使用另一个?此外,这些应该具有不同的数据库设置 YAML 文件,以便可以为 sqlite 配置简单的文件名,但生产数据库凭据永远不会命中 VCS 存储库。
我一般不喜欢这种做法,因为数据库引擎之间可能存在细微的差异,直到生产才会出现。(这可以通过在中间放置一个登台服务器来缓解。)
无论如何,您当然可以通过条件编译来做到这一点,尽管脚手架站点并非旨在以开箱即用的方式工作。只需查找引用特定后端的所有位置,并使其以 DEVELOPMENT CPP 变量为条件。