【问题标题】:heroku rake db:migrate ERROR "gem install activerecord-mysql-adapter"heroku rake db:迁移错误“gem install activerecord-mysql-adapter”
【发布时间】:2013-05-10 15:30:26
【问题描述】:

我正在使用 Rails 3.2.6 尝试运行

heroku run rake db:migrate

我得到适配器错误

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 环境

➜  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/

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

【问题讨论】:

  • 你能发布你的Gemfile吗?
  • Heroku 的平台与 Postgres 紧密耦合,并且它们不提供 MySQL 数据库作为选项而不提供附加组件。您使用的是 MySQL 插件还是远程主机?
  • 题外话:rails 3.2.6 存在重大安全问题 - 升级到 3.2.13 或更高版本 - 请参阅 google.com/search?q=site%3Aweblog.rubyonrails.org&q=CVErails 博客文章了解更多信息

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


【解决方案1】:

请记住,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。

【讨论】:

  • 我尝试了其他所有方法,这就是原因。你就是男人!
  • 感谢您实际回答问题。
【解决方案2】:

在 Heroku 上,您最好的数据库选择是 postgresql,毫无疑问。有几个原因可以归结为:Heroku 就是这样设计的。

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

如果您出于某种原因真的嫁给了 mysql,则需要安装一个 heroku 插件来启动并运行您的应用程序。有几个选项,但这里有一个:https://addons.heroku.com/cleardb

但实际上,最好的选择是将应用迁移到 postgresql,这是值得的。

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

【讨论】:

    猜你喜欢
    • 2012-06-16
    • 2012-12-09
    • 2013-06-03
    • 2013-02-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 2012-03-25
    相关资源
    最近更新 更多