Ruby on rails mysql2驱动程序似乎写入了无效的查询

Ruby on rails mysql2驱动程序似乎写入了无效的查询,ruby-on-rails,ruby,mysql2,Ruby On Rails,Ruby,Mysql2,我正在其他人开发的rails应用程序之上开发一个应用程序层 他的应用程序使用一个名为request_logger的模块写入一个表,该模块在ruby1.8/rails2/mysql gem下运行良好,但在我的ruby1.9/rails3/mysql2环境中,activerecord出现故障,表明生成的查询无效 很明显,所有mysql关系名称都用双引号而不是反引号括起来 对activerecord本身的调用只是设置了一组带有 log.attributes = { :user_id =>

我正在其他人开发的rails应用程序之上开发一个应用程序层

他的应用程序使用一个名为request_logger的模块写入一个表,该模块在ruby1.8/rails2/mysql gem下运行良好,但在我的ruby1.9/rails3/mysql2环境中,activerecord出现故障,表明生成的查询无效

很明显,所有mysql关系名称都用双引号而不是反引号括起来

对activerecord本身的调用只是设置了一组带有

log.attributes = {
    :user_id => user_id,
    :controller => controller,
    ...etc
}
然后打电话

log.save

所以我倾向于它不是狡猾的召唤。有什么建议吗?

mysql2
对很多人来说都很好,但是它毫不羞耻地牺牲了与MySQL C API的一致性,以提高常见任务的性能。也许,如果request_logger的级别足够低,那么它希望存在不存在的调用


重新使用
mysql
——试试看,如果可以,就坚持使用。请记住同时更改
Gemfile
config/database.yml
设置。

结果是rails 2和3之间的行为发生了变化(我们在rails 2中使用了相同的设置)

我们使用database.yml来指定一个(空的)“master”数据库,然后用碎片+八达通输入我们的客户机


为了简单起见,主数据库是sqlite,似乎activerecord将sqlite格式的请求反馈给mysql2碎片,而不管它们的适配器类型如何。

您在最初的问题中遗漏了很多。是的。很抱歉,我对ruby/rails有些陌生,已经陷入了困境。我感谢你的帮助。