我正在使用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/
我尝试了一些我发现谷歌搜索的东西,没有运气。任何帮助赞赏!谢谢!
答案 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,这是值得的。