【问题标题】:Issue with rake & mysql2 gemrake 和 mysql2 gem 的问题
【发布时间】:2011-09-04 01:52:55
【问题描述】:

这里是新手。我正在使用带有 rails (3.0.7)、mysql2 (0.3.2) gem 和 mysql-5.5.12(64 位版本)的 10.6.4 运行 Snow Leopard。 我的问题是 rake 不会将 DB Schema 转储到我的 rails 项目中。它给出的错误:

Homes-Mac-Pro:demo home$ rake db:schema:dump
(in /Users/home/Sites/demo)
rake aborted!
dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.3.2/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.3.2/lib/mysql2/mysql2.bundle
  Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.3.2/lib/mysql2/mysql2.bundle
/Users/home/Sites/demo/Rakefile:4

完整的跟踪可以找到here

这是我在堆栈溢出中的第一个 Rails 问题。 谢谢

【问题讨论】:

    标签: ruby-on-rails schema rake mysql2


    【解决方案1】:

    这是一个很常见的问题。简单的解决方案是在您的 Gemfile 中执行以下操作。

    gem 'mysql2', '~> 0.2.7' # Not mysql2 version 0.3.2 like you have
    gem 'rake', '~> 0.8.7' # Not rake version 0.9.0 like you have 
    

    Blog Post

    以上任何其他版本都不适用于 Rails 3.0.0 - 3.0.8

    让我们知道您的进展情况。一切顺利。

    【讨论】:

    • 感谢您的输入,但不幸的是,在我的 Gemfile 中安装和列出 Mysql2 0.2.7 对我不起作用。我会在我的 Gemfile 中使用旧的 mysql gem,但臭名昭著的“Mysql:Class 的未定义方法 `init'”也让我烦恼。
    • 如果您能够运行 bundle exec rake db:schema:dump 并且它可以工作(指定了 rake 和 mysql2 gem 版本),那么您的系统仍在尝试使用最新版本。您需要 gem 卸载 mysql2 并卸载所有版本,对 rake 执行相同操作并再次捆绑安装。让我们知道您的进展情况。
    • 如果您设法通过此答案获得答案,请随时将此答案标记为已解决。一切顺利。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 2011-10-21
    • 2013-06-05
    • 1970-01-01
    • 2011-08-15
    相关资源
    最近更新 更多