heroku rake db:migrate ERROR“gem install activerecord-mysql-adapter”

时间:2013-05-10 15:30:27

标签: mysql ruby-on-rails ruby heroku mysql2

我正在使用Rails 3.2.6尝试运行

heroku run rake db:migrate

我得到了adaptar ERROR

rake aborted!
Please install the mysql adapter: `gem install activerecord-mysql-adapter` (mysql is not part of the bundle. Add it to Gemfile.)

在我的 database.yml 中,我将开发,生产和测试设置为:

adapter: mysql2

这是我的 gem env

➜  my_app git:(master) gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.24
  - RUBY VERSION: 1.9.3 (2012-11-10 patchlevel 327) [x86_64-darwin11.4.2]
  - INSTALLATION DIRECTORY: /Users/jcollyer/.rvm/gems/ruby-1.9.3-p327
  - RUBY EXECUTABLE: /Users/jcollyer/.rvm/rubies/ruby-1.9.3-p327/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/jcollyer/.rvm/gems/ruby-1.9.3-p327/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-11
  - GEM PATHS:
     - /Users/jcollyer/.rvm/gems/ruby-1.9.3-p327
     - /Users/jcollyer/.rvm/gems/ruby-1.9.3-p327@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

我尝试了一些我发现谷歌搜索的东西,没有运气。任何帮助赞赏!谢谢!

2 个答案:

答案 0 :(得分:7)

请记住,Heroku使用配置属性DATABASE_URL而不是database.yml文件来连接到您的数据库。确保它已设置。如果您使用的是ClearDB插件,那么您想要的值应该在CLEARDB_DATABASE_URL中。

heroku config

复制ClearDB将在CLEARDB_DATABASE_URL配置变量中为您设置的值。将DATABASE_URL设置为相同的值

heroku config:set DATABASE_URL=mysql2://bb06ca765fb123:71b6dabc@us-cdbr-east-04.cleardb.com/heroku_703eded6aebc123?reconnect=true

这是一个问题。大多数人都使用mysql2 gem,所以你通常需要将DATABASE_URL设置为mysql2 ...而不是mysql。

没有必要放弃mysql并迁移到postgre。

答案 1 :(得分:1)

在Heroku上,数据库的最佳选择是postgresql,请放下。有几个原因归结为:这就是Heroku的设计工作方式。

如果您只是使用rails orm,您可以在开发环境中使用mysql2psql gem并更改配置文件以在生产中使用postgresql。

如果你因为某种原因真的与mysql结婚,你需要安装一个heroku插件来启动和运行你的应用程序。有几个选项,但这里有一个:https://addons.heroku.com/cleardb

但实际上,最好的办法是将你的应用程序迁移到postgresql,这是值得的。

更多信息: https://devcenter.heroku.com/articles/heroku-mysql