Mysql Rails 3.2解释了导致文档上传出现奇怪问题的原因

Mysql Rails 3.2解释了导致文档上传出现奇怪问题的原因,mysql,ruby-on-rails,amazon-s3,ruby-on-rails-3.2,Mysql,Ruby On Rails,Amazon S3,Ruby On Rails 3.2,这是一个奇怪的问题,我在谷歌上找不到任何提及 我有时会在事务中遇到这种异常,包括将文档上载到AWS S3 Mysql2::Error: Table 'app_name_development.begin' doesn't exist: EXPLAIN BEGIN 关闭可通过在环境配置中注释掉这一行来解释问题: # config.active_record.auto_explain_threshold_in_seconds = 0.5 我正在运行MySQL。您的问题是您运行的是旧版本的rail

这是一个奇怪的问题,我在谷歌上找不到任何提及

我有时会在事务中遇到这种异常,包括将文档上载到AWS S3

Mysql2::Error: Table 'app_name_development.begin' doesn't exist: EXPLAIN BEGIN
关闭可通过在环境配置中注释掉这一行来解释问题:

# config.active_record.auto_explain_threshold_in_seconds = 0.5

我正在运行MySQL。

您的问题是您运行的是旧版本的rails,它没有针对非CRUD的修复程序。解释如下:


问题在于activerecord本身

如果您所在的rails版本仍然存在缺陷,您可以通过设置:

config.active_record.auto_explain_threshold_in_seconds = nil

在config/environments/development.rb.

中,当数据库查询花费的时间太长时(包括子查询(来自includes等)然后rails在所有查询上运行explain。看起来好像某个事务是在这样一个块中运行的,尽管从我对源代码的阅读来看,我无法解释这是如何发生的。对,我理解它为什么运行explains,但不理解explains为什么会导致如此奇怪的异常。可能是因为ir试图解释标记事务开始的BEGIN语句,该语句无效..我不太明白发出BEGIN语句的结果是什么,尽管我遇到了完全相同的问题,而且它似乎只发生在从SQUEL派生的查询中。仍在调查中,但这可能会对您有所帮助。有趣的是,很高兴有人看到了这个,但我们没有使用挤压。