ziC*_*iCk 12 mysql2 ruby-on-rails-3
我偶尔会收到这个错误.我已经在stackoverflow中阅读了一些解决方案,但它们是关于rails 2或mysql的.任何帮助将不胜感激.
ActiveRecord::StatementInvalid (Mysql2::Error: MySQL server has gone away
Run Code Online (Sandbox Code Playgroud)
    seeds.rb我在尝试通过rake db:seed调用一个语句来导入大文件时遇到此错误:
ActiveRecord::Base.connection.execute(IO.read("path/to/file.sql"))
Run Code Online (Sandbox Code Playgroud)
我不断地得到ActiveRecord::StatementInvalid (Mysql2::Error: MySQL server has gone away...
解决方案
我通过结合两件事解决了这个问题:
reconnect: true到数据库规范中database.yml读取 SQL 文件并单独执行语句,如下所示:
f = File.new('path/to/file.sql')
while statements = f.gets("") do
  ActiveRecord::Base.connection.execute(statements)
end  
Run Code Online (Sandbox Code Playgroud)我必须修改以从我的 SQL 文件中删除一些注释——它们使 ActiveRecord 由于某种原因抛出错误,但这解决了我的问题。