生产中的SQLite3 :: NotADatabaseException(文件已加密或不是数据库)(Engineyard)

时间:2012-09-29 21:22:25

标签: ruby-on-rails-3 sqlite amazon-ec2 sqlite3-ruby engineyard

我正在尝试解析rails 3中的sqlite3数据库(使用sqlite3-ruby gem)。要解析的数据库来自文件上载。这是我的控制器代码:

  require 'fileutils'
  require 'sqlite3'

  tmp = params[:file_upload][:my_file]
  file = params[:file_upload][:my_file].tempfile
  filename = params[:file_upload][:my_file].original_filename

  file = File.join("public", params[:file_upload][:my_file].original_filename)
  FileUtils.cp tmp.path, filename

  db = SQLite3::Database.new(filename)

因此它在本地非常有效,但在生产中却没有(使用EngineYard)。我收到以下错误:

 SQLite3::NotADatabaseException (file is encrypted or is not a database)

我不明白为什么。任何帮助都会非常感激,因为我真的不知道如何解决这个问题。

由于

1 个答案:

答案 0 :(得分:0)

根据您自己的问题Sqlite 3.7 on amazon ec2 with Engine Yard似乎:) Engine Yard为您提供了sqlite 3.6,这意味着上面的@schlenk给出了正确答案: 错误消息通常表示数据库文件是使用WAL模式创建的,这需要mysql 3.7,Engine Yard尚未提供。