我們正在從1.8.7升級到Ruby 1.9.3,並嘗試將Rails從3.2.1更新到3.2.8或9.我們應用可搭配紅寶石1.9.3-P327和Rails 3.2.1,但只要我升級Rails的任何更高的版本,我開始看到MySQL的錯誤:Rails 3.2.8+和MySQL的某些組合不能很好地搭配使用
(0.2ms) BEGIN
SQL (0.5ms) INSERT INTO `orders` (`cancelled_at`, `completed_at`, `created_at`, `customer_id`, `refunded_at`, `updated_at`, `uuid`, `website_id`, `workflow_state`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?, ?, ?, ?, ?, ?, ?, ?, ?)' at line 1: INSERT INTO `orders` (`cancelled_at`, `completed_at`, `created_at`, `customer_id`, `refunded_at`, `updated_at`, `uuid`, `website_id`, `workflow_state`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
(0.1ms) ROLLBACK
Completed 500 Internal Server Error in 194ms
ActiveRecord::StatementInvalid (Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?, ?, ?, ?, ?, ?, ?, ?, ?)' at line 1: INSERT INTO `orders` (`cancelled_at`, `completed_at`, `created_at`, `customer_id`, `refunded_at`, `updated_at`, `uuid`, `website_id`, `workflow_state`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)):
app/controllers/search_controller.rb:231:in `build_new_order'
app/controllers/search_controller.rb:432:in `add_to_cart?'
app/controllers/search_controller.rb:37:in `new'
和所有我們正在做的是一個基本的:
@order = Order.create! @website
如果我們只是調用Order.new或Order.create並檢查@order的有效性,它會通過(@ web站點也是有效的)。呼叫保存!,我們得到MySQL錯誤。我們可以運行相同的Order.create!在控制檯中,它通過!
此外,一旦我們看到看到的錯誤,那麼整個網站的錯誤。我們已經看到一些Workflow的問題,並將其降級到0.8.1。我試過不同版本的MySQL2(目前使用0.3.11)。我嘗試使用activerecord-mysql2-adapter來代替,並且站點完全崩潰。我還沒有試過Paper Trail的不同版本(目前使用的是2.6.4),也許我在模型上集中了太多,因爲它在控制檯中工作。然而,控制器一直工作,直到我們試圖添加東西到購物車並創建訂單。
搜索網頁,rails網站,工作流,mysql2和堆棧溢出沒有任何東西。
有沒有其他人跑過類似的東西?任何其他建議,將不勝感激。謝謝!
編輯:
爲3.2.2的發佈說明稱「查詢緩存儀器包括在有效載荷綁定」。所以,我搜索了「高速緩存儀表」,發現這個:
https://github.com/orslumen/record-cache/issues/21