2011-05-28 60 views
0

新手到铁轨这里。我正在用rails(3.0.7),mysql2(0.3.2)gem & mysql-5.5.12(64位版本)运行Snow Leopard。 我的问题是,rake不会将DB架构转储到我的rails项目中。错误它给:问题与耙子和mysql2宝石

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

这是堆栈溢出我的第一个轨道的问题。 谢谢

回答

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

让我们知道您的身体情况如何。祝一切顺利。

+0

感谢您的输入,但不幸的是,在我的Gemfile中安装并列出Mysql2 0.2.7并不适合我。我会在我的Gemfile中使用好的旧的mysql gem,但是对于Mysql:Class而言,臭名昭着的“未定义的方法init”也会在那儿烦扰我。 – siner55 2011-05-28 20:44:36

+0

如果你能够运行bundle exec rake db:schema:dump并且它可以工作(指定了rake和mysql2 gem版本),那么你的系统仍然试图使用最新的版本。您需要gem卸载mysql2并卸载所有版本,再次使用rake和bundle install进行同样的操作。让我们知道您的身体情况如何。 – CharlesJHardy 2011-05-28 20:48:01

+0

随意标记此答案已解决,如果你设法得到它与这个答案。祝一切顺利。 – CharlesJHardy 2011-05-28 21:18:42