2012-10-14 39 views
3

我的應用程序是一個Ruby機架應用程序。當我的Heroku應用程序啓動時,它打破了,因爲Heroku上沒有這樣的文件'config/database.yml'

/app/config.ru:8:in'讀':沒有這樣的文件或目錄 - 配置/ database.yml的(錯誤:: ENOENT)

這是爲什麼發生?我理解的Heroku是爲了創建這個文件https://devcenter.heroku.com/articles/cedar-migration

數據庫憑據仍然會自動配置:在蛞蝓編譯時,該分析從環境DATABASE_URL一個配置/ database.yml的將被寫入到應用程序。

無奈在https://devcenter.heroku.com/articles/ruby的文檔沒有解釋有關database.yml

+1

您是否期待/希望Heroku創建此文件?如果是這樣,你的應用中是否有'config'目錄(git中有文件提交)? – matt

+0

謝謝亞光。承諾我自己的'config/database.yml',現在Heroku用它自己的時間替代它。奇怪的。如果我想讓我的'database.yml'保密,該怎麼辦? –

回答

1

這似乎只的Heroku如果在源代碼管理下有一個文件夾config,則創建它的config/database.yml。沒有在文檔中解釋。

+1

我不認爲你需要'database.yml'文件,[只是'config' dir](https://github.com/heroku/heroku-buildpack-ruby/blob/ V38/lib目錄/ language_pack/ruby​​.rb#L443)。如果配置目錄中沒有其他內容,請嘗試添加一個空的'.gitkeep'文件,以便將目錄推送到Heroku。 – matt

2

好吧,第一件事情 - Heroku的不使用database.yml文件。默認情況下,rails應用程序會自動從config /目錄加載它。而且它不需要在config.ru中手動加載它。如果你想在heroku PosgreSQL中使用 - 只需添加附加組件。 Heroku會做所有其他的事情來連接你的應用程序和數據庫。如果你想使用外部MySQL服務器,你應該使用亞馬遜RDS插件

heroku addons:add amazon_rds url=mysql2://user:[email protected]/dbname 

通過這個你可以使用任何分貝。我通過Amazon RDS附加組件使用GoDaddy mysql基礎。

任何方式,在你的config.ru問題八號線像

read 'config/database.yml' 

刪除它,並期待不是與Heroku的相沖突的其他方式

好運

+0

我的應用程序是香草架(Sinatra或Camping),而不是Rails –

+0

對不起。任何方式:「數據庫憑證仍然會自動配置:在slug編譯時,解析環境中的DATABASE_URL的config/database.yml將寫入應用程序。」嘗試評論該字符串,並嘗試啓動之前添加到數據庫主機名用戶heroku配置變量,並通過 –

+0

正如我所說 - heroku自動編譯文件的數據庫連接。不需要手動設置 –

相關問題