このコードを実行すると
require 'rubygems'
require 'data_mapper'
require "sqlite3"
DataMapper::setup(:default, "sqlite3://#{Dir.pwd}./prod.db")
class Person
include DataMapper::Resource
property :id, Serial
def initialize(name)
self[:name] = name
self.save!
end
end
DataMapper.finalize.auto_migrate!
このエラーがスローされます
DataObjects :: ConnectionError:データベースファイルを開くことができません(コード:14、SQL状態:、クエリ:、uri:)。
線に文句を言っているようDataMapper.finalize.auto_migrate!
です。
私がpersonクラスをコメントアウトすると、コードは、多少役に立たないものの、正常に実行されます。
エラーが発生しているOSはLinuxMageia2です。Ruby1.9.3を実行しているWindowsXPとWindows7でこれを正常に実行しましたが、問題は古いルビーバージョンがOSではなく古いバージョンであると思われます。
また、ファイルを含むフォルダーのアクセス許可が非常に開いている(-rwxrwxrwx)ことを伝えることはおそらく重要です(日常的に使用するためにこれを開くことはおそらく実用的ではありませんが、data_mapperを機能させるために必死です) 。
興味深いかもしれない他の仕様は次のとおりです私のローカルgemssqlite3(1.3.7、1.3.3)sqlite3-ruby(1.3.3)data_mapper(1.2.0)
ここには変更できる変数がたくさんあることを理解しています。私はこれを最初にそこに置いて、私が途方もなく行方不明になったのは単純な修正であるかどうかを確認すると思いました:)