2013-09-03 62 views
5

Đây có thể là sự cố thiết lập newbie. Nhưng ở đây đi ...Không thể lấy dự án ruby ​​trên đường ray của tôi để tạo cơ sở dữ liệu

thiết lập máy

Tôi có một 7 64 bit Windows máy chạy đường ray 4.0.0 và 2.0.0 ruby ​​ Tôi đã sau trong con đường của tôi

C:\Ruby200-x64\bin;C:\RubyDevKit\bin;C:\RubyDevKit\mingw\bin; 

Thiết lập dự án

Tôi đang làm việc từ một dự án git nhân bản từ kho lưu trữ làm việc của đồng nghiệp.

Khi tôi chạy của tôi ban đầu

rake db:migrate 

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

rake aborted! 
Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 's 
qlite3'` to your Gemfile. 
C:/Working/mynewproject/config/environment.rb:5:in `<top (required)>' 
Tasks: TOP => db:migrate => environment 
(See full trace by running task with --trace) 

My Gemfile có chứa đá quý 'sqlite3' như sau

# Use sqlite3 as the database for Active Record 
gem 'sqlite3' 

hoàn chỉnh Gemfile là

source 'https://rubygems.org' 

ruby '2.0.0' 

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.0.0' 
gem 'rails_12factor', group: :production 

# Use sqlite3 as the database for Active Record 
gem 'sqlite3' 

# Use SCSS for stylesheets 
gem 'sass-rails', '~> 4.0.0' 

# Use Twitter Bootstrap for styling 
gem 'bootstrap-sass' 

# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 

# Use CoffeeScript for .js.coffee assets and views 
gem 'coffee-rails', '~> 4.0.0' 

# See https://github.com/sstephenson/execjs#readme for more supported runtimes 
# gem 'therubyracer', platforms: :ruby 

# Use jquery as the JavaScript library 
gem 'jquery-rails' 

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks 
gem 'turbolinks' 

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 
gem 'jbuilder', '~> 1.2' 

group :doc do 
    # bundle exec rake doc:rails generates the API under doc/api. 
    gem 'sdoc', require: false 
end 

# Use ActiveModel has_secure_password 
# gem 'bcrypt-ruby', '~> 3.0.0' 

# Use unicorn as the app server 
# gem 'unicorn' 

# Use Capistrano for deployment 
# gem 'capistrano', group: :development 

# Use debugger 
# gem 'debugger', group: [:development, :test] 

gem 'protected_attributes' # should probably use strong parameters! 

Khi tôi chạy bundle install tôi nhận được danh sách sau đây - lưu ý sự vắng mặt của sqlite3

Using rake (10.1.0) 
Using i18n (0.6.5) 
Using minitest (4.7.5) 
Using multi_json (1.7.9) 
Using atomic (1.1.13) 
Using thread_safe (0.1.2) 
Using tzinfo (0.3.37) 
Using activesupport (4.0.0) 
Using builder (3.1.4) 
Using erubis (2.7.0) 
Using rack (1.5.2) 
Using rack-test (0.6.2) 
Using actionpack (4.0.0) 
Using mime-types (1.25) 
Using polyglot (0.3.3) 
Using treetop (1.4.15) 
Using mail (2.5.4) 
Using actionmailer (4.0.0) 
Using activemodel (4.0.0) 
Using activerecord-deprecated_finders (1.0.3) 
Using arel (4.0.0) 
Using activerecord (4.0.0) 
Using sass (3.2.10) 
Using bootstrap-sass (2.3.2.2) 
Using coffee-script-source (1.6.3) 
Using execjs (2.0.1) 
Using coffee-script (2.2.0) 
Using thor (0.18.1) 
Using railties (4.0.0) 
Using coffee-rails (4.0.0) 
Using hike (1.2.3) 
Using jbuilder (1.5.1) 
Using jquery-rails (3.0.4) 
Using json (1.8.0) 
Using protected_attributes (1.0.3) 
Using bundler (1.3.5) 
Using tilt (1.4.1) 
Using sprockets (2.10.0) 
Using sprockets-rails (2.0.0) 
Using rails (4.0.0) 
Using rails_serve_static_assets (0.0.1) 
Using rails_stdout_logging (0.0.2) 
Using rails_12factor (0.0.2) 
Using rdoc (3.12.2) 
Using sass-rails (4.0.0) 
Using sdoc (0.3.20) 
Using turbolinks (1.3.0) 
Using uglifier (2.2.1) 
Your bundle is complete! 

Khi tôi làm bundle show 'sqlite3' tôi nhận được

Could not find gem 'sqlite3'. 
Did you mean sqlite3? 

Khi tôi làm gem install 'sqlite3' tôi nhận được

Successfully installed sqlite3-1.3.8-x64-mingw32 
Parsing documentation for sqlite3-1.3.8-x64-mingw32 
unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/sqlite3/2.0/sqlite3_native.so, skipping 
1 gem installed 

Sau khi tìm kiếm để xem về lỗi "không thể chuyển đổi", tôi thấy rằng tôi có thể cài đặt mà không cần tài liệu. Vì vậy, nếu tôi làm

gem install 'sqlite3' --no-doc 

tôi nhận được

Successfully installed sqlite3-1.3.8-x64-mingw32 
1 gem installed 

và sau đó khi tôi

rake db:migrate 

tôi vẫn nhận được

rake aborted! 
Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 's 
qlite3'` to your Gemfile. 
C:/Working/mynewproject/config/environment.rb:5:in `<top (required)>' 
Tasks: TOP => db:migrate => environment 
(See full trace by running task with --trace) 

Vì vậy, những gì có tôi bị mất?

Cảm ơn

Cập nhật sau khi làm những gợi ý trong các ý kiến:

Theo kết quả của bình luận Doon của tôi đã đưa các nội dung gemfile trong mô tả của vấn đề trên

Để trả lời techvineet nhận xét của tôi, tôi đã chạy bundle install nhiều lần với đầu ra nhất quán.

Theo kết quả của zrl3dx 'bình luận của tôi bây giờ đã chạy bundle exec bundle và nhận được đầu ra tương tự, ví dụ:

Using rake (10.1.0) 
Using i18n (0.6.5) 
Using minitest (4.7.5) 
Using multi_json (1.7.9) 
Using atomic (1.1.13) 
Using thread_safe (0.1.2) 
Using tzinfo (0.3.37) 
Using activesupport (4.0.0) 
Using builder (3.1.4) 
Using erubis (2.7.0) 
Using rack (1.5.2) 
Using rack-test (0.6.2) 
Using actionpack (4.0.0) 
Using mime-types (1.25) 
Using polyglot (0.3.3) 
Using treetop (1.4.15) 
Using mail (2.5.4) 
Using actionmailer (4.0.0) 
Using activemodel (4.0.0) 
Using activerecord-deprecated_finders (1.0.3) 
Using arel (4.0.0) 
Using activerecord (4.0.0) 
Using sass (3.2.10) 
Using bootstrap-sass (2.3.2.2) 
Using coffee-script-source (1.6.3) 
Using execjs (2.0.1) 
Using coffee-script (2.2.0) 
Using thor (0.18.1) 
Using railties (4.0.0) 
Using coffee-rails (4.0.0) 
Using hike (1.2.3) 
Using jbuilder (1.5.1) 
Using jquery-rails (3.0.4) 
Using json (1.8.0) 
Using protected_attributes (1.0.3) 
Using bundler (1.3.5) 
Using tilt (1.4.1) 
Using sprockets (2.10.0) 
Using sprockets-rails (2.0.0) 
Using rails (4.0.0) 
Using rails_serve_static_assets (0.0.1) 
Using rails_stdout_logging (0.0.2) 
Using rails_12factor (0.0.2) 
Using rdoc (3.12.2) 
Using sass-rails (4.0.0) 
Using sdoc (0.3.20) 
Using turbolinks (1.3.0) 
Using uglifier (2.2.1) 
Your bundle is complete! 

Theo kết quả của Sachin Singh' bình luận của tôi đã xóa Gemfile.lock và chạy bundle install. Kết quả thu được khá nhiều giống nhau:

Fetching gem metadata from https://rubygems.org/.......... 
Fetching gem metadata from https://rubygems.org/.. 
Resolving dependencies... 
Using rake (10.1.0) 
Using i18n (0.6.5) 
Using minitest (4.7.5) 
Using multi_json (1.7.9) 
Using atomic (1.1.13) 
Using thread_safe (0.1.2) 
Using tzinfo (0.3.37) 
Using activesupport (4.0.0) 
Using builder (3.1.4) 
Using erubis (2.7.0) 
Using rack (1.5.2) 
Using rack-test (0.6.2) 
Using actionpack (4.0.0) 
Using mime-types (1.25) 
Using polyglot (0.3.3) 
Using treetop (1.4.15) 
Using mail (2.5.4) 
Using actionmailer (4.0.0) 
Using activemodel (4.0.0) 
Using activerecord-deprecated_finders (1.0.3) 
Using arel (4.0.0) 
Using activerecord (4.0.0) 
Using sass (3.2.10) 
Using bootstrap-sass (2.3.2.2) 
Using bundler (1.3.5) 
Using coffee-script-source (1.6.3) 
Using execjs (2.0.1) 
Using coffee-script (2.2.0) 
Using thor (0.18.1) 
Using railties (4.0.0) 
Using coffee-rails (4.0.0) 
Using hike (1.2.3) 
Using jbuilder (1.5.1) 
Using jquery-rails (3.0.4) 
Using json (1.8.0) 
Using protected_attributes (1.0.3) 
Using tilt (1.4.1) 
Using sprockets (2.10.0) 
Using sprockets-rails (2.0.0) 
Using rails (4.0.0) 
Using rails_serve_static_assets (0.0.1) 
Using rails_stdout_logging (0.0.2) 
Using rails_12factor (0.0.2) 
Using rdoc (3.12.2) 
Using sass-rails (4.0.0) 
Using sdoc (0.3.20) 
Using turbolinks (1.3.0) 
Using uglifier (2.2.1) 
Your bundle is complete! 
Use `bundle show [gemname]` to see where a bundled gem is installed. 

nên vẫn không đề cập đến sqlite3 và rake db:migrate kết quả vẫn

rake aborted! 
Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 's 
qlite3'` to your Gemfile. 
C:/Working/its-a-disaster/config/environment.rb:5:in `<top (required)>' 
Tasks: TOP => db:migrate => environment 
(See full trace by running task with --trace) 

Để đối phó với Sachin Singh 's câu hỏi đầu ra của ruby -v command là gì?

Nó nói:

ruby 2.0.0p247 (2013-06-27) [x64-mingw32] 

và đường ray --version nói

Rails 4.0.0 

Prusswan hỏi là có cài đặt ruby ​​khác trên cùng một máy?

Có ba - 1.9.2, 1.9.3 và 2.0.0 Sau đó là một trong đường dẫn. Hai thứ còn lại tôi đã xóa.

+0

đăng Gemfile của bạn, đá quý sqlite3 được chỉ định ở đâu? Là nó trong nhóm phát triển? – Doon

+0

Bạn có chạy lại gói cài đặt sau khi chỉ định gói trong đó không? Chỉ cần bao gồm nó trong gói của bạn như gem 'sqlite3' và chạy cài đặt bó lại – techvineet

+0

@Doon - được cập nhật để thêm gemfile trong câu hỏi – Jane

Trả lời

8

Có một vấn đề đã biết với Bundler và 64 bit Ruby, không phát hiện các nền tảng đá quý x64-mingw32 vào trong gói, do đó làm cho nó không thành công.

Tôi tin rằng điều này đã được cố định trong 1.4.0 phiên bản trước khi phát hành, và bạn có thể thử rằng bằng cách thực hiện:

gem update bundler --pre 

bundle install 

Có những vấn đề khác mà bạn có thể gặp phải với phiên bản 64bits. Trừ khi bạn thực sự bị buộc phải làm việc hoặc tạo các ứng dụng sử dụng nhiều hơn 2GB RAM (rất có thể không phải là ứng dụng Rails), tôi khuyên bạn nên sử dụng phiên bản 32 bit của Ruby (không phải là ứng dụng Rails). và DevKit tương ứng)

Trong khi bạn có phiên bản 64 bit của Windows, hệ thống có khả năng chạy các ứng dụng 32 bit mà không gặp vấn đề gì. Không có sự suy giảm hiệu suất có thể nhận thấy khi phát triển các ứng dụng Web với Rails.

Trong khi Ruby 2.0.0 đã được đánh dấu là ổn định và sẵn sàng sản xuất, không phải tất cả đá quý và công cụ liên quan đã được cập nhật để hoạt động đúng với nó.Vẫn còn một số cạnh thô cần được giải quyết, như bạn có thể thấy trong trường hợp của Bundler và 64 bit Ruby. Như hầu hết các phần mềm nguồn mở, đây là một nỗ lực cộng đồng và có thể cần được giúp đỡ.

Hy vọng điều này sẽ hữu ích.

+0

Cảm ơn Luis. Lệnh đó đã hoạt động và đã lưu tôi phải thực hiện thay thế thủ công -x86-mingw32 bằng -x64-mingw32 – Jane

+0

Rất vui được nghe @Jane, nhưng hãy ghi nhớ các khuyến nghị khác. Bạn có thể gặp phải các vấn đề khác với một số đá quý mà không làm việc khá tốt đẹp họ làm trong phiên bản 32bits. –