1

我从来都不是真正的数据库专家。我正在使用 Postgres,在我的 database.yml 中,我有:

test:
  adapter: postgresql
  encoding: unicode
  database: blog_test
  pool: 5
  username: blog
  password: <%= ENV['POSTGRES_PASSWORD'] %>
development:
  adapter: postgresql
  encoding: unicode
  database: blog_development
  pool: 5
  username: blog
  password: <%= ENV['POSTGRES_PASSWORD'] %>
production:
  adapter: postgresql
  encoding: unicode
  database: blog_production
  pool: 5
  username: blog
  password: <%= ENV['POSTGRES_PASSWORD'] %>

我很快就会把它推给heroku,只是有一些顾虑。这是我的问题(它们可能是愚蠢的问题,但我在谷歌上找不到任何以简单方式解决这个问题的东西):

1. heroku 会使用我的 herokue 密码为我设置吗?我应该保持这个文件原样吗?

2. 如何测试我的数据库是否受密码保护?

3. 拥有这个文件有什么意义?我不是唯一一个可以轻松访问我的 Rails 文件的人(当然没有黑客攻击)吗?

先感谢您。我正在使用 postgresapp 并正在部署 heroku

4

3 回答 3

3

可能值得查看Heroku Postgres文档。关键是当你上传到 Heroku 时,Heroku 会database.yml用一个自动生成的文件来替换文件来处理设置。您在本地拥有的文件的唯一要点database.yml是管理与您的开发和测试数据库的连接(以及本地生产数据库,如果您选择使用某种本地暂存环境或其他)。

于 2013-08-26T00:46:37.073 回答
2

您可以从 database.yml 文件中删除生产条目。

当 Rails 应用程序部署到 Heroku 时,会自动为您的应用程序生成一个 database.yml 文件,该文件将 ActiveRecord 配置为使用 PostgreSQL 连接并连接到位于 DATABASE_URL 的数据库。

https://devcenter.heroku.com/articles/heroku-postgresql#connecting-in-rails

于 2013-08-26T00:46:24.360 回答
2

Heroku 在部署时实际上会用自己的方式覆盖 yourdatabase.yml。这意味着您不必担心任何数据库名称/用户名/密码等。

这些东西确实存在并且可以在您需要时访问,但默认情况下 Heroku“知道”它并会自动设置您的连接。

如果你想看看你的数据库,你可以去这里:https ://postgres.heroku.com/databases 。这将为您提供应用程序的数据库名称和登录凭据。

于 2013-08-26T00:46:30.703 回答