【问题标题】:Working on a rails app locally with a remote Postgres connection?使用远程 Postgres 连接在本地使用 Rails 应用程序?
【发布时间】: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


    【解决方案1】:

    我有点新手,可能误解了你的问题 - 但是。使用 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:
    
    • 并且有效。我不记得做过其他事情了。

    皮埃尔

    【讨论】:

      【解决方案2】:

      我不是 postgres 用户,但这应该可以。 您可以更改您的database.yml 以包括hostport

      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
      

      【讨论】:

        【解决方案3】:

        以下是从本地开发访问 Heroku db 的步骤:

        1. 登录您的 Heroku 帐户。

        2. 导航到此 URL https://postgres.heroku.com/databases/ 或者您可以通过在终端中运行以下命令来获取 heroku db url:heroku pg:credentials:url

        3. 选择您的应用程序数据库。

        4. 您将能够看到您的 heroku pg 凭据:

          Host         xxxxxxxxx.77777.amazonaws.com
          Database     42feddfddeee 
          Username         44444444444
          Port         xxxx
          Password     777sfsadferwefsdferwefsdf
          
        5. 收集以上细节并放入你的databse.yml文件开发evn:

          adapter: postgresql  
          host: < host >                            # HOST 
          port: < port >                            # Port  
          database: < database name >               # Database Name  
          username: < user_name >                   # User Name  
          password: '< password >'                  # Password 
          

        重启你的应用,

        祝你好运..!!

        【讨论】:

        • 谢谢。对于阅读本文的任何人:注意在 database.yml 中使用“用户名:”而不是“用户:”,否则它会尝试使用您的系统名称连接您
        猜你喜欢
        • 2011-07-02
        • 1970-01-01
        • 1970-01-01
        • 2012-11-02
        • 1970-01-01
        • 2013-03-19
        • 1970-01-01
        • 2017-07-09
        • 1970-01-01
        相关资源
        最近更新 更多