我似乎无法准确地解释为什么要在开发中使用与生产中相同的数据库。我个人喜欢在开发中使用sqlite3(它很轻,易于使用,并且有一个甜蜜的sqlite浏览器GUI工具),然后在heroku的生产中使用postgres。但是,我一直在听听RBates或Michael Hartl或其他人是否应该在两者中使用相同的数据库,为什么会这样呢?
答案 0 :(得分:7)
我在开发中使用了SQLite3,在我的前几个Rails项目中使用了PostgreSQL。就在今天,我将当前项目的开发环境转换为PostgreSQL。
当我第一次将我的应用程序部署到Heroku时,我花了两天时间来纠正数据库迁移导致的错误。迁移在SQLite3中运行良好,但在PostgreSQL中破坏了。如果我使用过一个DB,我会避免这次调试。
今天早上我尝试使用一些SQL查询。如果您只使用rails查询,则可以使用切换DB。当您开始编写SQL时,您开始看到问题。在这里查看我的问题和解决方案:Ruby strftime '%-m' not working in query
如果我使用strftime让我的原始SQL查询工作,那么它们就会破坏生产。
通过创建匹配的开发和生产环境,为您节省未来的头痛。