Когда я запускаю этот код
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 state:, query:, uri:).
Кажется, он жалуется на строку DataMapper.finalize.auto_migrate!
.
Если я комментирую класс человека, код работает нормально, хотя и несколько бесполезно.
OS, в которую я получаю ошибку, - это Linux Mageia 2. Я отлично справился с WindowsXP и Windows7 с обоими ruby 1.9.3, хотя я подозреваю, что проблема в старой версии ruby - проблема не в ОС.
Кроме того, для меня, вероятно, важно сказать вам, что разрешения на папку с файлом очень открыты (-rwxrwxrwx) (Вероятно, это не так просто для этого, чтобы это было открыто для повседневного использования, но я отчаянно нуждаюсь в том, чтобы работать с data_mapper) ,
Вот и другие характеристики, которые могут быть интересны
Мои местные драгоценные камни
sqlite3 (1.3.7, 1.3.3)
sqlite3-ruby (1.3.3)
data_mapper (1.2.0)
Я понимаю, что здесь есть много переменных, которые можно было бы изменить. Я думал, что сначала поставлю это там и посмотрю, было ли это простое исправление, которое я пропустил без вести :)