【发布时间】:2013-10-29 11:13:16
【问题描述】:
有没有办法配置 database.yml 文件以远程连接到 Heroku 的 Postgres?
我无法理解 Heroku、Rails 和 PG gem 如何协同工作。
看起来在部署期间,Heroku 重写了 database.yml 文件 - 是否可以看到这个更新的 .yml 文件的内容并在本地使用它?
【问题讨论】:
标签: ruby-on-rails ruby postgresql heroku pg
有没有办法配置 database.yml 文件以远程连接到 Heroku 的 Postgres?
我无法理解 Heroku、Rails 和 PG gem 如何协同工作。
看起来在部署期间,Heroku 重写了 database.yml 文件 - 是否可以看到这个更新的 .yml 文件的内容并在本地使用它?
【问题讨论】:
标签: ruby-on-rails ruby postgresql heroku pg
我有点新手,可能误解了你的问题 - 但是。使用 postgress 数据库开发了一个 ROR 应用程序。然后上传到 Heroku。我运行 DB/Migrate/schema.rb 来设置远程 Postgresql 数据库。
从记忆中 heroku 运行 rake db:init(但我可能是错的)。每当我在开发中更新数据库以获取 Heroku 中的更新时,我必须提升代码并运行 heroku run rake db:migrate
来自我的config/dtabase.yml
development:
adapter: postgresql
encoding: unicode
database: di_development
pool: 5
username: davidlee
password:
test:
adapter: postgresql
encoding: unicode
database: di_test
pool: 5
username: davidlee
password:
production:
adapter: postgresql
encoding: unicode
database: di_production
pool: 5
username: user
password:
皮埃尔
【讨论】:
我不是 postgres 用户,但这应该可以。
您可以更改您的database.yml 以包括host 和port
production:
adapter: postgresql
encoding: unicode
database: di_production
pool: 5
username: user
password:
host: heroku.host.name
port: <postgres listen port>
当然,您应该允许服务器端的连接,包括防火墙级别和数据库级别。
查看#{Rails.root}/config/database.yml 内容的简单技巧是编写代码将此 yml 加载到对象中,然后在 UI 上打印出来
DB_CONFIG = YAML.load(File.read("#{Rails.root}/config/database.yml", __FILE__))
puts DB_CONFIG["production"].inspect # or what ever method you want to print it
【讨论】:
以下是从本地开发访问 Heroku db 的步骤:
登录您的 Heroku 帐户。
导航到此 URL https://postgres.heroku.com/databases/ 或者您可以通过在终端中运行以下命令来获取 heroku db url:heroku pg:credentials:url
选择您的应用程序数据库。
您将能够看到您的 heroku pg 凭据:
Host xxxxxxxxx.77777.amazonaws.com
Database 42feddfddeee
Username 44444444444
Port xxxx
Password 777sfsadferwefsdferwefsdf
收集以上细节并放入你的databse.yml文件开发evn:
adapter: postgresql
host: < host > # HOST
port: < port > # Port
database: < database name > # Database Name
username: < user_name > # User Name
password: '< password >' # Password
重启你的应用,
祝你好运..!!
【讨论】: