在Heroku上更改为MySQL2时出错

yel*_*ign 4 heroku mysql2 ruby-on-rails-3

对于我的Heroku应用程序(Rails 3.1.4和Ruby 1.9.2),我正在尝试更改为使用MySQL2的数据库,但是我收到来自Heroku的错误(这会导致我的应用程序崩溃):

3.1.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the mysql12 adapter: `gem install activerecord-mysql12-adapter` (no such file to load -- active_record/connection_adapters/mysql12_adapter) (RuntimeError) EXCEPT
Run Code Online (Sandbox Code Playgroud)

在我的gemfile中,我有:

group :production do
  gem "mysql2", "~> 0.3.11"
end

group :development, :test do
  gem 'mysql', '2.8.1'
end
Run Code Online (Sandbox Code Playgroud)

在我的database.yml中,我有:

development:
  adapter: mysql

production:
  adapter: mysql2
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的失败(所有尝试都在本地和Heroku中正确安装):

  1. 根据这个答案,我试过(在我的gemfile中),mysql2版本"<0.3"

  2. 对于那个问题的另一个答案,我尝试了'<0.3.7'但没有用

  3. 我按照这个答案尝试了宝石"mysql2","〜> 0.3.11" ,但它没有用

  4. 根据gem的网站,我尝试(在我的gemfile中),mysql2版本"〜> 0.2.7"并安装了mysql2 0.2.18(在本地成功并在Heroku中)

小智 26

我相信你很久以前就已经想到了这一点,或者很久以前就已经开始了,但是我遇到了同样的问题并且认为我会分享对我来说对谁有用的东西.

除了你上面提到的,如果你使用的是Heroku,你还必须在DATABASE_URL而不是mysql://中指定mysql2://.请参阅此处的ClearDB文章:https://devcenter.heroku.com/articles/cleardb

并更新他们的指令使用mysql2://而不是mysql://像这样:

heroku config:add DATABASE_URL='mysql2://adffdadf2341:adf4234@us-cdbr-east.cleardb.com/heroku_db?reconnect=true'
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.