2013-09-28 433 views
6

Tôi đang làm Ruby on Rails Tutorial. Đối với ba chương đầu tiên, nó sử dụng SQLite, nhưng sau này nó gợi ý sử dụng PostgreSQL để phát triển để triển khai Heroku dễ dàng hơn. Sau khi chỉnh sửa database.ymlGemfile để sử dụng pg thay vì sqlite3, có vẻ như nó hoạt động - trừ khi sử dụng Rake để chạy thử nghiệm. Nó xuất hiện lỗi AdapterNotSpecified.Rails/ActiveRecord - AdapterNotSpecified, mặc dù nó là

C:/Ruby/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.0/lib/active_record/ connection_adapters/connection_specification.rb:52:in resolve_hash_connection': database configuration does not specify adapter (ActiveRecord::AdapterNotSpecif ied)

, vv

Các database.yml xác định một bộ chuyển đổi, như vậy:

development: 
    adapter: postgresql 
    host: localhost 
    username: nekkoru 
    password: derpderp 
    database: development 
    encoding: UTF8 

gì đang xảy ra? Tôi đang sử dụng Windows 7 x64, Ruby 1.9.3, Rails 4.0.0, PostgreSQL 9.3.0.1.

Trả lời

12

Bạn không xác định cơ sở dữ liệu cho môi trường thử nghiệm. Tệp database.yml của bạn sẽ trông giống như:

development: 
    adapter: postgresql 
    host: localhost 
    username: nekkoru 
    password: derpderp 
    database: development 
    encoding: UTF8 

test: 
    adapter: postgresql 
    host: localhost 
    username: nekkoru 
    password: derpderp 
    database: test  # or whatever the name is 
    encoding: UTF8 
+0

Bây giờ tôi cảm thấy câm. Điều này tất nhiên hoạt động. Cảm ơn bạn :) – Nekkoru

+0

Điều này thật hữu ích. Tôi đã không nhận ra các nhiệm vụ cào sẽ tự động làm cả hai phát triển/thử nghiệm. –

6

Thụt lề là thủ phạm đối với tôi.

Đường ray có vẻ như có cách đọc nghiêm ngặt loại db (phát triển hoặc sản xuất) và cài đặt db (bộ điều hợp, máy chủ, tên người dùng, v.v ...) từ tệp yml.

Nhưng tất nhiên, thông báo lỗi ActiveRecord quá mức cần thiết .. nó làm cho nó trông giống như tôi đã thiếu một viên đá quý

+2

Cảm ơn. Bạn thực sự đã cứu mạng tôi. – inquisitive