我正在开发一个由其他人开发的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
所以我倾向于它不是狡猾的调用。有什么建议吗?
答案 0 :(得分:1)
mysql2
适用于很多人,但是它毫无顾忌地牺牲了对MySQL C API的一致性,以提高常见任务的性能。也许,如果request_logger足够低,它就会期望存在不存在的调用。
切换回使用mysql
是微不足道的 - 尝试一下,如果有效,请坚持下去。请务必更改Gemfile
和config/database.yml
设置。
答案 1 :(得分:0)
结果是导轨2和3之间的行为似乎发生了变化(我们在导轨2中的设置相同)
我们使用database.yml指定一个(空)“master”数据库,然后使用分片+章鱼为我们的客户端提供数据。
为了简单起见,master db是sqlite,似乎activerecord正在将为sqlite格式化的请求提供给mysql2分片,无论它们的适配器类型如何。