4

我的应用程序是一个 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

4

2 回答 2

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不冲突的其他方式

祝你好运

于 2012-10-14T19:33:56.237 回答
1

Heroku 似乎只有config/database.yml在您有一个config处于源代码控制之下的文件夹时才会创建它。文档中没有解释。

于 2012-10-14T20:32:17.110 回答