我最近转为主要是Rails开发人员。我还没想到的一件事是如何在应用程序在本地计算机上处于生产模式时保护开发人员不犯错误。因为我正在使用Heroku和MongoLab,所以我可以从本地计算机访问我的生产环境资源。当我需要使用本地机器调试生产环境中发生的问题时,这真的很棒。然而,这使得团队中的某个人很难忘记他们当前正在生产模式下运行本地服务器并错误地搞砸了 - 例如删除数据库中的所有记录。
有没有人有一些关于如何防止粗心错误发生的最佳做法?
答案 0 :(得分:1)
rails c production --sandbox
始终,除非您为了管理记录而去那里。 --sandbox
标志将整个控制台会话包装在数据库事务中,并回滚您在退出时所做的任何数据库更改。
但正如其他人所说,如果您发现自己需要在生产中测试内容,那么您 需要做的就是设置您的开发环境以更接近地模仿您的生产环境。我知道像Heroku这样的云服务有点困难,但你可以非常接近。
答案 1 :(得分:1)
这样做没有“最佳实践”。您正在寻找的是使用最差练习的最佳做法。您的开发机器绝对不能与您的生产数据库通信。
您的生产凭证不应包含在您的版本控制系统中,因此甚至没有人可以从他们的开发机器访问生产数据库。
如果您真的想要在生产中进行测试,请在工作站上本地配置“生产”数据库,远离真实的生产服务器,并将一些生产数据复制到其中。