将笔记本电脑上的本地rails应用程序连接到heroku数据库

jus*_*don 5 postgresql ruby-on-rails heroku

很清楚如何从psql本地登录到heroku postgres数据库:https://devcenter.heroku.com/articles/heroku-postgresql#external-connections-ingress

但是,如何在本地设置database.yml以使本地rails实例与heroku数据库通信?

Cur*_*ind 11

尝试这样的事情

production:
  adapter: postgresql
  encoding: utf8
  database: DB_NAME_FROM_HEROKU
  username: USERNAME_FROM_HEROKU
  password: PASSWORD_FROM_HEROKU
  host: HOSTNAME_FROM_HEROKU # something like ec2-xxx-xx-xxx-xxxx.compute-1.amazonaws.com
  sslmode: require
Run Code Online (Sandbox Code Playgroud)

要获取值,您需要运行以下命令

$ heroku pg:credentials:url
Run Code Online (Sandbox Code Playgroud)

然后在生产环境中启动您的应用程序

$ rails s -e production
Run Code Online (Sandbox Code Playgroud)

由于数据库托管在互联网上,因此在使用连接到云中的数据库的本地计算机上运行时,会出现大量延迟并且通常缺乏响应能力.

PS:确保本地应用程序的架构版本与heroku上的远程数据库完全匹配.否则,在运行迁移时可能会出现dataloss

  • 一个小注意事项是,您可能还需要在database.yml中指定'port'属性 (3认同)