加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 4:Capistrano开发环境而非生产?

发布时间:2020-12-17 03:23:57 所属栏目:百科 来源:网络整理
导读:我正在使用capistrano gem将我的 ruby on rails应用程序的生产环境部署到虚拟专用服务器上.我运行以下命令来部署: bundle exec cap production deploy 除非我尝试检查我当前的生产版本在哪个环境中运行,否则一切似乎都运行良好. 我用来检查这个的一种方法是
我正在使用capistrano gem将我的 ruby on rails应用程序的生产环境部署到虚拟专用服务器上.我运行以下命令来部署:

bundle exec cap production deploy

除非我尝试检查我当前的生产版本在哪个环境中运行,否则一切似乎都运行良好.

我用来检查这个的一种方法是运行:

rails console
Rails.env

我得到的答案是“发展”,这是非常可怕的.

在另一个测试期间:当我在当前版本中运行以下内容时:

rails db

我收到一条错误,指出未创建mydatabase_development.

我的应用程序似乎运行良好,但我不知道这是否会导致重大问题向前发展.首先:有没有办法确定我的实时副本是否真的在开发中运行?其次:鉴于我遇到问题,如何配置capistrano来部署生产环境?

解决方法

请记住,rails控制台会根据您环境中的RAILS_ENV或RACK_ENV的指示参与当前环境.如果您没有在服务器上明确设置它,那么它可能默认为开发.

解决此问题的一种方法是在.bash_profile或您正在使用的任何shell配置文件中强制它.例如:

export RAILS_ENV=production

这应该是可用的,当你使用你的Rails shell时,它将正确启动.

请注意,您甚至无法在生产服务器上以开发模式启动,因为在config / database.yml中不应该有一个具有该名称的条目.最佳做法是仅在生产服务器上存储config / database.yml,并在Capistrano部署期间将其移除.

将其添加到config / deploy.rb:

set :linked_files,%w[
  config/database.yml
]

然后在shared / config / database.yml中创建一个仅生产配置,在部署时将链接到位.请务必从版本控制系统中排除config / database.yml,以免部署它.

您的网站可能没问题的原因是因为像Passenger这样的启动器会自动将RACK_ENV设置为生产,除非另有配置.但是,这不会影响您的shell,它默认为开发.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读