Mysql2需要生产环境,而不是开发环境

时间:2011-12-06 09:39:02

标签: ruby-on-rails

我的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上安装它(顺便说一句,这很痛苦),而我认为它只会安装在共享服务器上?

2 个答案:

答案 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