Ruby on rails 生产箱上的Sqlite

Ruby on rails 生产箱上的Sqlite,ruby-on-rails,sqlite,rubygems,passenger,production,Ruby On Rails,Sqlite,Rubygems,Passenger,Production,我是否必须将sqlite安装在我正在使用mysql作为rails应用程序的prod box上?我问的原因是phusion对我大喊大叫,错误如下: Could not find gem 'sqlite3-ruby (>= 0, runtime)' in any of the gem sources. (Bundler::GemNotFound) 我的文件有以下内容 group :development, :test do gem 'sqlite3-ruby', :require =

我是否必须将sqlite安装在我正在使用mysql作为rails应用程序的prod box上?我问的原因是phusion对我大喊大叫,错误如下:

Could not find gem 'sqlite3-ruby (>= 0, runtime)' in any of the gem sources. (Bundler::GemNotFound)
我的文件有以下内容

group :development, :test do
    gem 'sqlite3-ruby', :require => 'sqlite3'
end

group :production do
    gem 'mysql'
end
如果我把开发部分的条目注释掉,我的问题就消失了。我猜我也可以在prod服务器上安装sqlite,但出于某种原因,我觉得这是错误的。我假设:development一节中的引用可以防止这种情况发生,但显然情况并非如此


对于这种情况,有什么最佳实践建议吗?如果您看到我做错了什么,我会特别感兴趣。

当您运行
bundler install
时,默认情况下,bundler将尝试为所有环境解析并安装Gems

如果要跳过特定环境,可以传递
--而不传递
参数

$ bundler install --without development
$ bundler install --without test development

另外,请记住使用
--deployment

标志。

嗯,如果我是从prod服务器上的命令行运行它,那么这是有意义的,因此我猜我也需要配置phusion passenger来完成这项工作,这是可能的吗?不,您需要确保加载了正确的环境。例如,要在生产模式下打开控制台,请使用
rails c production
(对于rails 3)或
script/console production
(对于rails 2)