2013-02-10 46 views
1

嗨,我有這樣的傢伙同樣的問題:Ruby Guard questions - 'Please install the sqlite3 adapter' - railstutorial.org測試使用RSpec給出了錯誤:「請安裝sqlite3的適配器」 - railstutorial.org

執行「捆綁EXEC rspec的投機/請求/ static_pages_spec.rb」給我這樣的:

C:\Users\Me\Ruby\sample_app>bundle exec rspec spec/requests/static_pages_spec 
.rb 
Rack::File headers parameter replaces cache_control after Rack 1.5. 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/rubygems_integrati 
on.rb:147:in `block in replace_gem': Please install the sqlite3 adapter: `gem in 
stall activerecord-sqlite3-adapter` (sqlite3 is not part of the bundle. Add it t 
o Gemfile.) (LoadError) 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_ 
record/connection_adapters/sqlite3_adapter.rb:3:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `block in require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:236:in `load_dependency' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_ 
record/connection_adapters/abstract/connection_specification.rb:50:in `resolve_h 
ash_connection' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_ 
record/connection_adapters/abstract/connection_specification.rb:41:in `resolve_s 
tring_connection' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_ 
record/connection_adapters/abstract/connection_specification.rb:25:in `spec' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_ 
record/connection_adapters/abstract/connection_specification.rb:130:in `establis 
h_connection' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_ 
record/railtie.rb:82:in `block (2 levels) in <class:Railtie>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/lazy_load_hooks.rb:36:in `instance_eval' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/lazy_load_hooks.rb:36:in `execute_hook' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/lazy_load_hooks.rb:43:in `block in run_load_hooks' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/lazy_load_hooks.rb:42:in `each' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/lazy_load_hooks.rb:42:in `run_load_hooks' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_ 
record/base.rb:720:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-rails-2.11.0/lib/rspec/ra 
ils/extensions/active_record/base.rb:19:in `<module:Extensions>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-rails-2.11.0/lib/rspec/ra 
ils/extensions/active_record/base.rb:4:in `<module:Rails>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-rails-2.11.0/lib/rspec/ra 
ils/extensions/active_record/base.rb:2:in `<module:RSpec>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-rails-2.11.0/lib/rspec/ra 
ils/extensions/active_record/base.rb:1:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `block in require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:236:in `load_dependency' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-rails-2.11.0/lib/rspec/ra 
ils/extensions.rb:1:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `block in require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:236:in `load_dependency' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-rails-2.11.0/lib/rspec/ra 
ils.rb:8:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `block in require' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:236:in `load_dependency' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active 
_support/dependencies.rb:251:in `require' 
     from C:/Users/Ayhan/Ruby/sample_app/spec/spec_helper.rb:4:in `<top (requ 
ired)>' 
     from C:/Users/Ayhan/Ruby/sample_app/spec/requests/static_pages_spec.rb:1 
:in `require' 
     from C:/Users/Ayhan/Ruby/sample_app/spec/requests/static_pages_spec.rb:1 
:in `<top (required)>' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.11.1/lib/rspec/cor 
e/configuration.rb:780:in `load' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.11.1/lib/rspec/cor 
e/configuration.rb:780:in `block in load_spec_files' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.11.1/lib/rspec/cor 
e/configuration.rb:780:in `map' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.11.1/lib/rspec/cor 
e/configuration.rb:780:in `load_spec_files' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.11.1/lib/rspec/cor 
e/command_line.rb:22:in `run' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.11.1/lib/rspec/cor 
e/runner.rb:69:in `run' 
     from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rspec-core-2.11.1/lib/rspec/cor 
e/runner.rb:8:in `block in autorun' 

但我的database.yml看起來是這樣的:

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
development: 
    adapter: postgresql 
    host: localhost 
    username: user 
    database: app-dev 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: sqlite3 
    database: db/production.sqlite3 
    pool: 5 
    timeout: 5000 

我有什麼在這裏改變? 還是有另一個問題,我不能看到?

P.S:我安裝了postgreSQL,這就是爲什麼我改變了database.yml中的開發過程。和的Gemfile看起來像這樣:

source 'https://rubygems.org' 

gem 'rails', '3.2.11' 
gem 'pg', '0.12.2' 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

group :development, :test do 
    gem 'rspec-rails', '2.11.0' 
end 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.5' 
    gem 'coffee-rails', '~> 3.2.2' 
    gem 'uglifier', '>= 1.2.3' 
end 

gem 'jquery-rails' 

group :test do 
    gem 'capybara', '1.1.2' 
end 

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

# To use Jbuilder templates for JSON 
# gem 'jbuilder' 

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

# Deploy with Capistrano 
# gem 'capistrano' 

# To use debugger 
# gem 'debugger' 

回答

1

隨着config/database.yml當前配置,發展ENV是postgrestest & production使用sqlite3。並且Gemfile中沒有包含sqlite3寶石。因此,關於Please install the sqlite3 adapter的錯誤消息。

爲什麼不在所有環境中使用postgres而不是僅爲development?分別應用-prod`:database: app-test &數據庫 -

製作的章節testproduction類似的developmentconfig/database.yml具有適當的數據庫名。

或者,如果您想在某些環境中使用sqlite3,那麼僅包含該環境的sqlite3 gem,其他環境的包括pg gem。

實施例的Gemfile配置:

的下面配置將僅包括用於productionpg寶石,只有sqlite3寶石爲development & test環境。

group :production do 
    gem 'pg', '0.11.0' 
end 

group :development, :test do 
    gem 'sqlite3-ruby', :require => 'sqlite3' 
end 
+0

好吧,我改變了它,但現在它不執行所有,只是說這句話的: 機架::文件頭參數機架1.5後替換cache_control。 我改變了這樣的database.yml中: 測試: 適配器:在PostgreSQL數據庫 :DB /測試 池:5 超時:5000 用戶名:用戶 – Acimaz 2013-02-10 16:33:01

+0

請適當地改變兩個'test'和'production',並在運行'bundle exec rspec spec/requests/static_pages_spec.rb'命令之前運行'bundle install'。 – 2013-02-10 16:37:04

+0

由於您正在更改環境的數據庫配置,因此您還必須使用'rake db:create'創建數據庫。 – 2013-02-10 16:45:09

相關問題