2012-12-22 14 views
5

Tôi mới sử dụng Sinatra và tôi đang cố gắng tạo một cơ sở dữ liệu bằng cách sử dụng SQLite3 và Datamapper. Tôi đã cài đặt cả đá quý và cũng là bộ chuyển đổi và sau đó cố gắng để thực thi mã này trong một tập tin:Lỗi SQLM của DataMapper khi tạo cơ sở dữ liệu mới

#config 
require 'sinatra' 
require 'sinatra/contrib' if development? 
require 'data_mapper' 

DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/recall.db") 
DataMapper.finalize.auto_upgrade! 

Các dòng lệnh đã cho tôi lỗi này khi tôi thực hiện các tập tin:

C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require':126: The specified module could not be found. - 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/do_sqlite3-0.10.10-x86-mingw32/lib/do_sqlite3/1.9/do_sqlite3.so (LoadError) 

và sau đó rất nhiều của những thứ khác đã đi sai vì những lỗi này. Tôi đã thử cài đặt lại nhiều đá quý nhưng không có gì có vẻ đã hoạt động.

EDIT: Mã lỗi đầy đủ là thế này:

C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require':126: The specified module could not be found. - C:/Ruby193/lib/ruby/gems/1.9.1/gems/do_sqlite3-0.10.10-x86-mingw32/lib/do_sqlite3/1.9/do_sqlite3.so (LoadError) 
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/backports-2.6.5/lib/backports/tools.rb:314:in `require_with_backports' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/do_sqlite3-0.10.10-x86-mingw32/lib/do_sqlite3.rb:31:in `rescue in <top (required)>' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/do_sqlite3-0.10.10-x86-mingw32/lib/do_sqlite3.rb:26:in `<top (required)>' 
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/backports-2.6.5/lib/backports/tools.rb:314:in `require_with_backports' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/dm-sqlite-adapter-1.2.0/lib/dm-sqlite-adapter/adapter.rb:1:in `<top (required)>' 
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/backports-2.6.5/lib/backports/tools.rb:314:in `require_with_backports' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/dm-sqlite-adapter-1.2.0/lib/dm-sqlite-adapter.rb:1:in `<top (required)>' 
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require' 
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require' 
from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/backports-2.6.5/lib/backports/tools.rb:314:in `require_with_backports' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:163:in `load_adapter' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:133:in `adapter_class' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:13:in `new' 
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core.rb:230:in `setup' 
from test.rb:7:in `<main>' 
+3

Bạn thử cài đặt dm-sqlite-adapter đá quý? –

+1

Bạn có thể cung cấp toàn bộ stacktrace và lệnh bạn đã sử dụng không? – mbj

+0

Tôi đã cài đặt bộ điều hợp dm-sqlite. Lỗi vẫn xảy ra. Lệnh tôi đã sử dụng là "ruby test.rb". Tôi không chắc làm thế nào tôi có thể tìm thấy stacktrace. – Amja

Trả lời

2

Hãy thử thêm:

require 'dm-sqlite-adapter' 

Nếu điều đó không giải quyết được việc này, bạn cũng có thể thử thay đổi

DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/recall.db") 

đến

DataMapper.setup(:default, 'sqlite:recall.db') 

và xem có khắc phục được không. Tôi thực sự không biết nguyên nhân, nhưng làm ở trên (dấu nháy đơn, không có "3", và không có đường dẫn) cố định một lỗi tôi đã nhận được khi cố gắng thiết lập cụ thể.

7

Tôi đã cố này, hãy sử dụng ruby ​​1.9.3 trên cửa sổ - cố định nó bằng cách tải về sqlite3.dll từ http://www.sqlite.org/download.html và đặt nó trong C: \ Ruby193 \ bin

+0

Liên kết: http://www.sqlite.org/2014/sqlite-dll-win32-x86-3080500.zip –

Các vấn đề liên quan