use*_*154 6 mysql json mysql2 ruby-on-rails-3
我使用sqlite构建了我的Rails 3应用程序,现在我正在尝试切换到MySQL.
我创建了一个新的MySQL数据库,相应地更改了database.yml,我在我的gemfile(gem 'mysql2', '< 0.3')中添加了一个旧版本的mysql2 gem,它应该可以更好地使用Rails 3.
我可以启动开发服务器.当我访问页面时,我得到一个Mysql2::Error(Table 'twitter_quiz_development.users' doesn't exist).哪个没问题 - 我仍然需要将架构添加到新的数据库中.这是我遇到麻烦的地方:
rake db:schema:load返回这个讨厌的错误.
这里找到的解决方案对我不起作用.gem pristine --all归还这个.
如果有帮助,我正在运行Ubuntu 11.
看来该错误与JSON有关,但我不知道如何解决这个问题.谢谢.
您遇到的问题可能是由 3 个原因造成的:
我在下面详细说明了...
我建议的第一件事是升级您的 Ruby 1.9 版本。最新的稳定版是:
ruby 1.9.2p180 (2011-02-18 revision 30909)
Run Code Online (Sandbox Code Playgroud)
我强烈建议使用Ruby Version Manager (RVM)来安装和管理 Ruby。
关于使用 JSON gem,请查看: http://ruby.about.com/od/tasks/a/The-Json-Gem.htm
去引用:
在 Ruby 1.8.7 上,您需要安装 gem。然而,在 Ruby 1.9.2 中,json gem 与核心 Ruby 发行版捆绑在一起。因此,如果您使用的是 1.9.2,那么您可能已经准备就绪。如果您使用的是 1.8.7,则需要安装 gem。
在安装 JSON gem 之前,首先要意识到该 gem 有两个变体。只需使用 gem install json 安装此 gem 即可安装 C 扩展变体。这需要安装 C 编译器,并且可能不适用于所有系统。不过,如果您可以安装此版本,则应该安装。
如果您无法安装 C 扩展版本,则应该使用 gem install json_pure 来代替。这与纯 Ruby 中实现的 gem 相同。它应该在 Ruby 代码运行的任何地方、所有平台和各种解释器上运行。然而,它比 C 扩展版本慢得多。
编辑:
看起来您应该避免在 Ruby 1.9 中使用SystemTimer gem。有关更多信息,请参阅:http://isitruby19.com/systemtimer
引用菲利普在该页面上发表的评论:
我是这颗宝石的(共同)作者。简短的故事:在 Ruby 1.9 中使用这个 gem 是没有用的,没有任何意义!
System Timer 试图解决 Ruby 1.8 (MRI) 中使用的“绿色线程”模型的一些限制。有关更多详细信息,请参阅http://ph7spot.com/musings/system-timer 。
那么它在 Ruby 1.9 中就无关紧要了,Ruby 1.9放弃了绿色线程模型并采用了本机线程(有点因为仍然存在全局解释器锁)。
干杯,-菲利普
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |