0

我刚刚将我的 Leopard 系统升级到了 Snow。我有一个 Rails 应用程序,在升级之前运行了一套 Spec 示例;它使用了一个mysql数据库。

升级后,运行 rake spec 会失败,如下所示:

...
** Invoke db:schema:load (first_time)
** Invoke environment 
** Execute db:schema:load
rake aborted!
closed stream
/opt/local/lib/ruby/1.8/mysql.rb:1032:in `sync='
/opt/local/lib/ruby/1.8/mysql.rb:1032:in `write'
/opt/local/lib/ruby/1.8/mysql.rb:1092:in `finalizer
...

我已经尝试了以下方法:

  • 重新安装 Mysql 5.1.37 x86;
  • 卸载旧的 mysql gem;
  • 在运行 rake:spec 之前运行 rake:db:migrate, rake:db:prepare 等等,但没有成功;
  • 宝石更新——系统。

最奇怪的是,通过命令行或直接从 TextMate 调用时,规范运行正常。

有什么建议吗?

如果您需要更多信息,请询问:)

4

1 回答 1

0

您可能想尝试重新编译您的 mysql gem。对我来说,使用 Ruby 1.8.7 很容易做到这一点,但我无法让它在 1.9.1 上工作。无论如何,这里有一些可能会有所帮助的链接。

  1. http://void-design.net/2009/08/05/ruby-191-mysql-and-a-snow-leopard/
  2. http://www.schmidp.com/2009/06/14/rubyrails-and-mysql-on-snow-leopard-10a380/
  3. Rails、MySQL 和雪豹
于 2009-08-31T17:22:21.260 回答