2014-02-27 72 views
2

Postgres的9.3,紅寶石2.1.0耙分貝:創建給未定義的方法`[]」爲零:NilClass錯誤

rake db:create不使測試數據庫。我已經有一個生產數據庫。我嘗試使用RAILS_ENV =測試耙分貝:創建給力,但它返回「測試數據庫未配置

database.yml - >

development: 
    adapter: postgresql 
  database: app_prod 
  host: localhost 

test: &test 
  adapter: postgresql 
  database: app_test 
  host: localhost 

cucumber: 
    <<: *test 

production: 
  adapter: postgresql 
 database: app_prod 
  host: localhost 

所以它被配置我也嘗試只使用一個控制檯。 CREATEDB app_test創建我的測試數據庫,但我收到同樣的錯誤,當我嘗試運行耙分貝:測試:準備

任何人有任何想法

這是DB --trace:?創建:全部

** Invoke db:create:all (first_time) 

** Invoke db:load_config (first_time) 

** Execute db:load_config 

** Execute db:create:all 

rake aborted! 
undefined method `[]' for nil:NilClass 
/Users/username/.rvm/rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/gems/activerecord-4.0.3/lib/active_record/tasks/database_tasks.rb:189:in `block in each_local_configuration' 

這是DB跟蹤:測試:準備

** Invoke db:test:prepare (first_time) 

** Invoke db:load_config (first_time) 

** Execute db:load_config 

** Execute db:test:prepare 

** Invoke db:test:load (first_time) 

** Invoke db:test:purge (first_time) 

** Invoke environment (first_time) 

** Execute environment 

** Invoke db:load_config 

** Execute db:test:purge 
rake aborted! 
undefined method `[]' for nil:NilClass 
/Users/username/.rvm/rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/gems/activerecord-4.0.3/lib/active_record/tasks/database_tasks.rb:137:in `purge' 
+0

作爲一個說明,使用'{}'按鈕格式化的代碼。 – tadman

+0

使用'--trace'查找出錯的地方 –

+0

謝謝我試過了,沒有看到任何我可以使用的:( – Donald

回答

1

嘗試在控制檯

運行此
ActiveRecord::Base.configurations 

你應該讓你的數據庫配置。在該方法中

線3(189線中github)在您的情況下,失敗,因爲配置爲nil

def each_local_configuration 
    ActiveRecord::Base.configurations.each_value do |configuration| 
     next unless configuration['database'] 

     if local_database?(configuration) 
     yield configuration 
     else 
     $stderr.puts "This task only modifies local databases. #{configuration['database']} is on a remote host." 
     end 
    end 
    end 
+0

這就是它,它是零到期*我認爲*在我的.yml文件中的無形字符。感謝Vimsha:D – Donald

相關問題