My Rails应用程序在开发模式下运行良好。然后我通过bundle install --without development test
切换到生产模式。当我尝试运行rake(rake routes
)时出现此错误:
"
耙子流产了! Gem :: LoadError:指定' sqlite3'对于数据库
适配器,但没有加载gem。将gem 'sqlite3'
添加到您的帐户中
的Gemfile
我的Gemfile有:
group :development, :test do
gem 'sqlite3', '1.3.10'
end
group :production do
gem 'pg', '0.18.3'
gem 'rails_12factor'
end
我的config/database.yml
看起来像是:
default: &default
pool: 5
timeout: 5000
development:
<<: *default
adapter: sqlite3
database: db/development.sqlite3
test:
<<: *default
adapter: sqlite3
database: db/test.sqlite3
production:
<<: *default
adapter: postgresql
database: prod
username: produser
bundle install --without production test
后的我的Gemfile.lock
GEM
remote: https://rubygems.org/
specs:
...
pg (0.18.3)
...
rails_12factor (0.0.3)
...
sqlite3 (1.3.10)
...
DEPENDENCIES
...
pg (= 0.18.3)
...
rails_12factor (0.0.3)
...
sqlite3 (= 1.3.10)
...
BUNDLED WITH
1.10.6
我已更新到Ruby 2.2.3,Rails 4.2.4,完成gem update system
和bundle update
都无济于事。
我的另一个问题是为什么sqlite3
gem会出现在Gemfile.lock
生产模式中?同样,为什么pg
gem出现在开发模式中?
感谢任何帮助。
答案 0 :(得分:3)
rake routes
使用默认环境 - 即开发。
您需要:
rake routes RAILS_ENV=production
或将RAILS_ENV环境变量设置为&#39; production&#39;