在部署rails应用程序之前,我需要做些什么

时间:2008-09-19 10:54:36

标签: ruby-on-rails deployment config

修改

在部署rails应用程序之前,我需要做哪些小问题?

我为任何需要一两分钟以上的任务设置了another question,因此应该安排到部署过程中。在这个问题中,我主要关注的是在线配置选项和类似的,可以做到的,但在开发周期中经常被忽略,因为它们在部署之前没有任何区别

8 个答案:

答案 0 :(得分:5)

  • 冻结您正在使用的宝石rake gems:unpack
  • 更改config/environment.rb
  • 中的密码
  • 过滤敏感信息,例如密码:app/controllers/application.rb filter_parameter_logging :password, :password_confirmation

答案 1 :(得分:4)

  • 确保在生产服务器上设置了数据库
  • 设置capistrano以正确部署您的应用
    • 运行capistrano dry-run
  • 确保Rails已打包到您的vendor / rails文件夹
  • 确保所有宝石在您的应用中冻结或安装在您的prod服务器上
  • 在生产计算机上运行测试

答案 2 :(得分:2)

  • 包含Google Analytics分析代码段(或其他分析)

答案 3 :(得分:1)

  • 检查slow query log,并为模型添加任何导致全表遍历的索引。

  • grep -ril FIXME

答案 4 :(得分:1)

设置要在应用程序的已部署副本之间共享的文件和文件夹,包括(但不限于)视图缓存,数据库配置,维护页面......

答案 5 :(得分:0)

这些不是特定于Rails的部署任务,但我看到它们被部署系统忽略了太多次:

  • 备份;诚然,这可能最终成为一项重大任务,但不一定如此。只需安排数据库和软件的夜间备份就足够了。
  • 测试恢复程序
  • 记录轮换和存档
  • 例外通知

答案 6 :(得分:0)

  • 确保要部署的位置正确设置了RAILS_ENV变量。无论是通过环境,还是通过capistrano回调。
  • 确保您的测试全部通过运行rake spec,shoulda,单元测试或用于测试的任何内容。
  • 使用rake gems解压宝石:unpack
  • 决定是否需要冻结Rails。 rake rails:freeze:gems
  • 如果您需要的不仅仅是宝石(memcached,邮件服务器等),请仔细检查服务器上是否安装了依赖项
  • 如果您使用的是MySQL,请在服务器上编译并安装基于C的MySQL库(这可能需要几分钟的时间,但如果满足所有依赖关系,通常会相当快)。
  • 如果您使用的是git,请将代码推送到主分支。如有必要,请标记。
  • 如果您使用的是SVN,请标记该版本。

答案 7 :(得分:0)