2011-09-10 41 views
16

Tôi đang làm theo hướng dẫn trong rails tutorial và bị kẹt khi cố sử dụng lệnh giàn giáo.lỗi bộ chuyển đổi đường ray sqlite

Khi chạy:

rails generate scaffold User name:string email:string 

tôi nhận được lỗi:

C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile.) (RuntimeError) 

Chạy:

gem install activerecord-sqlite3-adapter 

Tôi đã nhận lỗi:

ERROR: Could not find a valid gem 'activerecord-sqlite3-adapter' (>= 0) in any repository 
ERROR: Possible alternatives: activerecord-jdbcsqlite3-adapter, activerecord-sqlserver-adapter, activerecord-nulldb-adapter, activerecord-spatialite-adapter, activerecord-simpledb-adapter 

My Gemfile trông giống như sau:

source 'http://rubygems.org' 
gem 'rails', '3.1.0' 
gem 'sqlite3', '1.3.3' 
... 

Tôi đang chạy trên Windows 7 x64 OS.

Bất kỳ ý tưởng nào?

Trả lời

18

Ok tôi đã tìm thấy sự cố. Tôi nhận thấy rằng cài đặt Rails của tôi có cả SQLite 1.3.3 và 1.3.4 tôi đã thay đổi Gemfile tôi từ:

gem 'sqlite3', '1.3.3' 

tới:

gem 'sqlite3', '1.3.4' 

Đó giải quyết vấn đề. Cảm ơn @holger-just vì đã chỉ cho tôi đến dòng có liên quan trong thông báo lỗi trong their answer.

+1

Tôi thêm chính xác của tôi như thế này: gem 'sqlite3'. Và điều đó giải quyết vấn đề tương tự cho tôi :-) – MarlonRibunal

3

Phần quan trọng của thông báo lỗi của bạn là đoạn này:

can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile. 

Để khắc phục điều đó, bạn nên luôn luôn chạy lệnh của bạn thông qua bundle exec như vậy

bundle exec rails generate scaffold User name:string email:string 

Bằng cách đó, bạn cho bundler để kiểm soát hoàn toàn số $LOAD_PATH của bạn, điều này có thể sẽ giải quyết những vấn đề này.

+0

Cảm ơn @Holager exec đã không giải quyết được sự cố nhưng bạn đã chỉ cho tôi vào dòng có liên quan trong thông báo lỗi. Điều này đã giúp tôi giải quyết vấn đề. –

2

tôi đã có lỗi này quá, mua vấn đề của tôi là hơi khác nhau. vấn đề là không sử dụng sqlite3-ruby, được thay thế bằng sqlite3. trong webcast của michael hartl, anh ta vẫn sử dụng đá cẩm thạch cũ sqlite3.

Tôi đã chỉnh sửa gemfile của mình để sử dụng sqlite 1.3.4 thay vì sqlite3-ruby 1.3.1. cài đặt lại gói chạy lại và đã giải quyết được vấn đề!

2

Thay vì

gem install activerecord-sqlite3-adapter 

chạy

gem install sqlite3 
2

Cũng on Rails Hướng dẫn, chạy:

$ rake db:migrate 

Got lỗi sau:

Please install the sqlite3 adapter: gem install activerecord-sqlite3-adapter (sqlite3 is not part of the bundle. Add it to Gemfile.).

Ran:

$ gem install activerecord-sqlite3-adapter

Got:

ERROR: Could not find a valid gem 'activerecord-sqlite3-adapter' (>= 0) in any repository

Changed Gemfile theo một trong những câu trả lời ở trên:

gem 'sqlite3', '1.3.4'

Got lỗi khác nên phải cài đặt:

$ gem install sqlite3 -v '1.3.4' 

Cố gắng chạy $ rake db: di chuyển một lần nữa, nhưng đã nhận lỗi khác, lần này giống như câu trả lời ở trên:

Please install the sqlite3 adapter: gem install activerecord-sqlite3-adapter (can't activate sqlite3 (~> 1.3.5), already activated sqlite3-1.3.4. Make sure all dependencies are added to Gemfile.)

Vì vậy, thay đổi Gemfile tới:

gem 'sqlite3', '1.3.5'

Và nhận được một thông báo lỗi để đảm bảo 'gem install sqlite3 -v' 1.3.5 'thành công (wtf ?! một lần nữa). Đã cài đặt thành công, chạy cài đặt gói.

chạy thử:

$ rake db:migrate 

Không có gì xảy ra, vì vậy cố gắng:

$ bundle exec rails generate scaffold User name:string email:string 

mỗi gợi ý khác ở trên. Và cuối cùng nó đã hoạt động. Các hướng dẫn cảnh báo về một quá trình thiết lập mất thời gian, nhưng tôi cảm thấy như tôi đã phải trộn và kết hợp từ ít nhất 5 người khác. Hy vọng điều này sẽ giúp người tiếp theo.

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