当我运行这段代码
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 类,代码运行良好,尽管有点无用。
我遇到错误的操作系统是 Linux Mageia 2。我在运行 Ruby 1.9.3 的 WindowsXP 和 Windows7 上运行良好,但我怀疑问题是旧的 ruby 版本不是操作系统的问题。
另外,告诉你包含该文件的文件夹的权限非常开放(-rwxrwxrwx)对我来说可能很重要(它可能不适合日常使用,但我迫切希望让 data_mapper 工作) .
以下是其他可能有趣的规格 我的本地宝石 sqlite3 (1.3.7, 1.3.3) sqlite3-ruby (1.3.3) data_mapper (1.2.0)
我知道这里有很多变量可以改变。我想我会先把它放在那里,看看它是否是我愚蠢地失踪的简单修复:)