为什么Rails在我的生产服务器上寻找SQLite3?

时间:2010-11-20 01:12:59

标签: ruby-on-rails rake capistrano deployment

我的database.yml看起来像这样:

# SQLite version 3.x
#   gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: project_production
  pool: 5
  username: root
  password: mypwd
  host: /var/mysql/mysql.sock

项目在生产服务器上加载,我正在执行:

server:projectfolder admin$ rake db:schema:load RAILS_ENV=production

然后回来:

Could not find sqlite3-ruby-1.3.2 in any of the sources
Try running `bundle install`.

我已经完成了捆绑安装,但不确定为什么它甚至会关注生产中的sqlite3?!

fyi - 我的Gemfile有:

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

任何人都可以帮我看看我搞砸了什么吗?

2 个答案:

答案 0 :(得分:1)

假设您的sqlite3-ruby gem已经进入了不包含:production的组,您可以运行:

env RAILS_ENV=production bundle install --without development test

这将创建一个.bundle目录,指示ruby不要加载任何未设置为:production的gem。

答案 1 :(得分:0)

尝试跑步:

export RAILS_ENV='production'
rake ...