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