2
我试图绑定rails-dbd-mysql,但它试图安装旧的mysql gem而不是新的mysql2 gem。我需要做什么才能使这个工作与MySQL2?Rails 3 - rails-dbd-mysql gem依赖于mysql而不是mysql2
我试图绑定rails-dbd-mysql,但它试图安装旧的mysql gem而不是新的mysql2 gem。我需要做什么才能使这个工作与MySQL2?Rails 3 - rails-dbd-mysql gem依赖于mysql而不是mysql2
如果您有兴趣深入了解源代码,可以通过修改lib/dbd/Mysql.rb文件来完成此操作。具体做法是:
begin
require 'rubygems'
gem 'mysql'
gem 'dbi'
rescue LoadError => e
end
require 'dbi'
require "mysql"
require "thread" # for Mutex
更改mysql
s转换mysql2
S和重新安装宝石。在整个程序中可能会有更多的分散,所以请确保找到全部。
编辑: 你可以试试build/rake_task_lib.rb文件。特别是这块代码:
DBD_GEM_DEP_MAP = {
'pg' => 'pg',
'mysql' => 'mysql', #change this to mysql2, or add mysql2 to the list
'sqlite' => 'sqlite-ruby',
'sqlite3' => 'sqlite3-ruby'
}
我试过通过编辑该Mysql.rb文件。你提到的那个部分似乎是我发现的唯一需要'mysql'依赖的地方。它不工作。我得到的错误是'未初始化的常量MysqlError'。我试过注释掉执行'MyError = :: MysqlError'但是导致'未初始化常量Mysql'的行。 – oprogfrogo 2012-06-13 18:35:06
我已经更新了我的答案,看看是否有帮助。 – 2012-06-13 18:41:42
啊,有一个构建耙的任务。我从gem的源文件中做了一个'gem build rails-dbd-mysql-0.1.0.gem'并将它复制到本地目录。然后将其添加到我的Gemfile“gem'rails-dbd-mysql','0.1.0',:path =>'vendor/gems'”。谢谢安迪。似乎我不能奖励另外22个小时的赏金。但是我会进行测试和监控,然后奖励。 – oprogfrogo 2012-06-13 19:07:03