Ошибки SQL при запуске Rails 3.2.19 с Ruby 2.1.5 с Passenger 4.0.57
В настоящее время наше приложение Rails работает на Ruby 1.9.3 и Passenger 3.0.19. Но когда мы обновили Ruby до версии 2.1.5 и Passenger до 4.0.57, приложение начало генерировать странные SQL-запросы, подобные следующим
ActiveRecord::StatementInvalid (Mysql2::Error: [34816] syntax error: improper query string termination: SELECT (End of query)
ActiveRecord::StatementInvalid (Mysql2::Error: [8192] Relation not found: no such relation ": SELECT ` (End of query)
Mysql2::Error: [32768] Translate error: SQL-ERROR: unable to resolve relation "": SELECT agents.* FROM agents WHERE ``.id = 22241082 LIMIT 1
ActiveRecord::StatementInvalid (Mysql2::Error: [32769] Unknown column: SQL-ERROR: unable to resolve column "agents.: SELECT agents.* FROM agents WHERE agents.` (end of query)
One update query with where clause "0 = 0"
Нам нужна помощь по следующим вопросам
- Совместим ли ruby 2.1.5 с Rails 3.2.19?
- Может ли эта проблема быть связана с обновлением ruby или Passenger или это является причиной ошибки в нашем приложении? Как мы можем отладить это?
1 ответ
Решение
Мы наконец выяснили, что проблема связана с некоторыми старыми драгоценными камнями, которые были частью нашей базы кода. Обновление их до совместимости с Ruby 2.x решило проблему.