Rails数据库rake任务运行但从不退出

7
当我运行Rails提供的任何rake db任务时,它们都能够成功运行但永远不会退出。我必须使用CTRL+C来退出任务。我已经测试了超过8小时,问题仍然存在。
如果我运行rake db:migrate --trace,将会得到以下输出:
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:migrate
** Invoke db:schema:dump (first_time)
** Invoke db:load_config 
** Execute db:schema:dump
_

就像我说的一样,一切都按预期运行,但在db:schema:dump之后它会停顿。

我使用以下内容:

  • Mac OS X 10.7.1(Lion)
  • Ruby 1.9.2p290
  • Rails 3.1.0
  • MySQL 5.5.14
  • mysql2 gem 0.3.7

我还要注意,这是一个没有添加任何gems/code的基本Rails应用程序。我可以通过rails new testapp -d mysql然后rake db:createbundle exec rake db:create来复制它。

有人遇到过这个问题或者知道我可以做什么进一步排除故障吗?


SQLite 正常运行。看起来这只是 MySQL 的问题。 - Shaun Chapman
我正在使用mysql2版本0.3.7。 - Shaun Chapman
brew update 仅下载更新的配方 - 它不会构建新版本。brew upgrade 将构建新版本。如果您运行了 update,我怀疑那并不是解决您问题的方法... - Derek Prior
3
请将您的修复方案作为回答添加到此问题中,并接受它,以便将其标记为已关闭。 - Nathan Kleyn
3
@ShaunChapman,由于您的问题得到了一些赞,我建议您把解决方案写成答案,并将其标记为正确答案(回答自己的问题也是可以的)。这样,该问题就不会再出现在“未回答”的时间轴中。 - Yardboy
2个回答

1

我解决了这个问题。

首先,我尝试卸载使用官方二进制安装的MySQL版本,然后使用Homebrew重新安装。但是没有任何作用。

然后我运行了brew update,重启了MySQL,再次尝试。哎呀!它奏效了。

罪魁祸首似乎是以下某个旧版本中的一个错误:

libiconv
glib
gtk+

这些是唯一被更新的公式。


0

我也遇到了同样的问题,但不用担心,我尝试了bundle update之后再也没有遇到这个问题了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接