2011-09-04 74 views
7

当我运行Rails提供的任何rake db任务时,它们都能成功运行,但永远不会退出。我必须按CTRL + C才能退出任务。我测试了超过8个小时,问题依然存在。Rails DB rake任务运行但从未退出

下面是输出的,如果我跑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(狮子)
  • 红宝石1.9.2p290
  • 的Rails 3.1.0
  • 的MySQL 5.5.14
  • mysql2 gem 0.3.7

我还会注意到这是一个没有添加宝石/代码的基础Rails应用程序。我可以用rails new testapp -d mysql然后rake db:createbundle exec rake db:create进行复制。

有没有人遇到这个问题或知道我能做些什么来进一步排除故障?

+0

SQLite正常运行。看起来这是一个MySQL唯一的问题。 –

+0

我正在使用mysql2版本0.3.7。 –

+0

'brew update'只下载更新的公式 - 它不会构建新版本。 “酿造升级”将构建新版本。如果您确实运行了更新,我怀疑这是什么修复了您的问题... –

回答

1

我修复了这个问题。

首先,我尝试卸载使用官方二进制安装的MySQL版本,然后重新安装使用Homebrew。那什么都没做。

然后我运行brew更新,重新启动MySQL,然后再次尝试。找到了!有效。

的罪魁祸首似乎是在一个旧版本的下列之一的错误:

libiconv 
glib 
gtk+ 

这些都是进行了更新,唯一的公式。

0

同样的事情也发生在我身上,但不用担心,我尝试了捆绑更新后,我从来没有面对这个问题。