2014-07-18 68 views
0

rake中止!無法加載Rails.application.database_configuration:無法轉換零散列rake中止!無法將nil轉換爲哈希

我想在openshift上的rails上部署ruby,然後我嘗試運行rake db:migrate。然後我面對這個問題。

我上openshift創建https://github.com/kohjx/TestYourCode.git該應用與在軌道上紅寶石+ MySQL 5.1中

然後我配置配置/ database.yml中

default: &default 
    #adapter: sqlite3 
    adapter: mysql2 
    pool: 5 
    timeout: 5000 
    database: "<%=ENV['OPENSHIFT_APP_NAME']%>" 
    username: "<%=ENV['OPENSHIFT_MYSQL_DB_USERNAME']%>" 
    password: "<%=ENV['OPENSHIFT_MYSQL_DB_PASSWORD']%>" 
    host:  <%=ENV['OPENSHIFT_MYSQL_DB_HOST']%> 
    port:  <%=ENV['OPENSHIFT_MYSQL_DB_PORT']%> 



development: 
    <<: *default 
    #database: db/development.sqlite3 

test: 
    <<: *default 
    #database: db/test.sqlite3 
    database: testyourcode_test 

production: 
    <<: *default 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 
    #database: db/production.sqlite3 

我設置的RAILS_ENV =發展,但我不能弄清楚如何解決。任何幫助將不勝感激!

+0

當你遇到錯誤時,你正在運行什麼樣的rake任務? – MCBama

+0

他說'rake db:migrate' – CWitty

+0

xD完全錯過了。我的錯。 – MCBama

回答

0

乍一看,它看起來像是使用Openshift DB作爲默認設置,然後所有的Rails環境都使用該默認設置。您的本地機器(我假設您運行的是rake db:migrate)無法將這些連接詳細信息用於OPenshift DB。

而不是在默認區段中將Openshift DB配置移到生產設置並將RAILS_ENV =生產與rhc set-env RAILS_ENV=production切換。然後使用本地機器可以使用的設置配置開發。完成之後,嘗試運行你的db:再次遷移。

+0

謝謝,我解決了。這是secret.yml中的secret_key_base問題。 database.yml也非常關注縮進。 –

相關問題