部署时如何告诉 Rails 使用生产数据库(而不是开发数据库)?
Posted
技术标签:
【中文标题】部署时如何告诉 Rails 使用生产数据库(而不是开发数据库)?【英文标题】:How to tell Rails to work with the production database (rather than development one) when deploying? 【发布时间】:2011-03-25 06:13:21 【问题描述】:我正在尝试将我的 Rails 3 应用程序上传到真实的生产环境。 (该应用程序在我的本地机器上运行良好)。
当我运行 rails c 时出现以下错误:
/home/misha_moroshko/.gems/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:62:in `establish_connection': development database is not configured (ActiveRecord::AdapterNotSpecified)
from /home/misha_moroshko/.gems/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:55:in `establish_connection'
from /home/misha_moroshko/.gems/gems/activerecord-3.0.1/lib/active_record/railtie.rb:59
from /home/misha_moroshko/.gems/gems/activesupport-3.0.1/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
我应该如何告诉 Rails 它应该与生产数据库而不是开发数据库一起使用?
【问题讨论】:
【参考方案1】:先设置RAILS_ENV环境变量,或者传递给rails c命令:
RAILS_ENV=production rails c
或
rails c production
【讨论】:
【参考方案2】:你的 database.yml 中有什么?它应该有一个生产设置,你需要告诉 Rails 你想在生产中运行它:
rails c production
【讨论】:
【参考方案3】:这在很大程度上取决于您要部署到的“环境”。对于 Apache 和Passenger,可以设置:
# conf/passenger.conf
RailsEnv production
RackEnv production
【讨论】:
以上是关于部署时如何告诉 Rails 使用生产数据库(而不是开发数据库)?的主要内容,如果未能解决你的问题,请参考以下文章
在弹性 beantalk 上部署 rails 应用程序时出错(生产模式)
部署到 Heroku 时如何在我的生产环境中拥有一个 mysql 数据库
如何在开发模式而不是生产模式下部署 create-react-app 网站
如何解决错误“‘生产’环境缺少‘secret_key_base’”(Rails 4.1)
javascript_include_tag Rails 4 在生产中生成“/javascripts/”而不是“/assets”