0

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)

私はなぜなのか理解していない。この問題を解決する方法が本当にわからないので、どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

0

あなた自身の質問によると、Sqlite 3.7 on amazon ec2 with Engine Yardの ようです:) Engine Yard は sqlite 3.6 を提供しました。つまり、上記の @schlenk は正しい答えを示しました。エラー メッセージは通常、データベース ファイルが WAL モードで作成されたことを示しています。これには、Engine Yard がまだ提供していない mysql 3.7 が必要です。

于 2013-08-28T20:16:19.410 に答える