我正在尝试解析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)
我不明白为什么。任何帮助都会非常感激,因为我真的不知道如何解决这个问题。
由于
答案 0 :(得分:0)
根据您自己的问题Sqlite 3.7 on amazon ec2 with Engine Yard似乎:) Engine Yard为您提供了sqlite 3.6,这意味着上面的@schlenk给出了正确答案: 错误消息通常表示数据库文件是使用WAL模式创建的,这需要mysql 3.7,Engine Yard尚未提供。