我的应用是一款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
答案 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
。没有在文档中解释。