2012-04-24 57 views

回答

2

如果您有興趣深入瞭解源代碼,可以通過修改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' 
} 
+0

我試過通過編輯該Mysql.rb文件。你提到的那個部分似乎是我發現的唯一需要'mysql'依賴的地方。它不工作。我得到的錯誤是'未初始化的常量MysqlError'。我試過註釋掉執行'MyError = :: MysqlError'但是導致'未初始化常量Mysql'的行。 – oprogfrogo 2012-06-13 18:35:06

+0

我已經更新了我的答案,看看是否有幫助。 – 2012-06-13 18:41:42

+0

啊,有一個構建耙的任務。我從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