我的rails应用程序的开发和测试环境(rails 3.1)我使用mysqlite3,它工作正常。对于共享服务器上的生产环境,我使用mysql。一切都用capistrano很好地部署,但随后Passenger给出了这个错误:“请安装mysql2适配器:gem install activerecord-mysql2-adapter
(mysql2不是捆绑包的一部分。将它添加到Gemfile。)”
所以我把它添加到gemfile:
group :production do
gem 'activerecord-mysql2-adapter'
end
但是,当我进行“捆绑安装”时,它说它找不到那个宝石。当我尝试首先添加mysql2 gem时,它会尝试在我的本地Mac上安装它(顺便说一句,这很痛苦),而我认为它只会安装在共享服务器上?
答案 0 :(得分:1)
Bundler无法找到gem activerecord-mysql2-adapter
因为没有这样的宝石。
如果您使用的mysql2
版本太新(我相信~> 0.3.x
),您将遇到此错误。那是因为那些版本应该与Rails 3.1及更高版本一起使用。
您可以通过将应用程序升级到Rails 3.1或在特定版本的mysql2
gem中告诉您想要的Gemfile来解决此问题,如下所示:
gem 'mysql2', '~> 0.2.7'
您还需要确保config/database.yml
指定mysql2
适配器:
production:
adapter: mysql2
如果它显示mysql
,您最终会收到一条错误消息,说明您必须安装mysql2
gem(即使您已经这样做过)。
这两个答案都记录在案here,顺便说一句。
答案 1 :(得分:0)
查看您的.bundle/config
文件。如果有类似
BUNDLE_WITHOUT: production
只需删除此行并再次运行RAILS_ENV=production bundle install
。