在Heroku上没有这样的文件'config / database.yml'

时间:2012-10-14 18:55:06

标签: ruby heroku rack

我的应用是一款Ruby机架应用。当我的Heroku应用程序启动时,它会中断,因为

  

/app/config.ru:8:in`read':没有这样的文件或目录 - config / database.yml(Errno :: ENOENT)

为什么会这样?我了解Heroku旨在创建此文件https://devcenter.heroku.com/articles/cedar-migration

  

仍然会自动配置数据库凭据:在slug编译时,从环境中解析DATABASE_URL的config / database.yml将被写入应用程序。

https://devcenter.heroku.com/articles/ruby的文档令人沮丧地没有解释database.yml

2 个答案:

答案 0 :(得分:2)

好的,第一件事 - heroku不使用database.yml文件。默认情况下,rails app会自动从config /目录加载它。并且无需在config.ru中手动加载它。如果你想在heroku PosgreSQL中使用 - 只需添加附加组件。 Heroku会做所有其他事情来链接你的应用程序和数据库。如果要使用外部MySQL服务器,则应使用Amazon RDS附加组件

heroku addons:add amazon_rds url=mysql2://user:pass@dbhost/dbname

通过这个你可以使用任何数据库。我通过Amazon RDS插件使用GoDaddy mysql库。

无论如何,你的config.ru第8行的问题就像

read 'config/database.yml'

删除它并查看与heroku不冲突的其他方式

祝你好运

答案 1 :(得分:1)

如果您在源代码管理下有一个文件夹config/database.yml,则Heroku只会创建其config。没有在文档中解释。