【问题标题】:Can you run the heroku console on a follower DB?你可以在跟随者数据库上运行 heroku 控制台吗?
【发布时间】:2017-05-27 05:46:32
【问题描述】:

我在 heroku 上部署了一个 ruby​​ on rails 应用程序,其中包含一个数据库和一个关注者数据库。

我通常会执行“heroku run rails console”来查看数据,我想知道是否有一种方法可以在关注者数据库上执行此操作,这样我就不会意外写入/删除内容。我知道这应该很简单,但我似乎找不到关于它的文档。

谢谢!

【问题讨论】:

    标签: ruby-on-rails heroku


    【解决方案1】:

    您可以从本地控制台执行此操作。开火吧:

    rails console
    

    然后,您需要在 heroku 上为您的关注者数据库提供连接信息。您可以从https://postgres.heroku.com/databases/ 检索此信息。只需单击相关数据库并使用以下信息分配哈希:

    follower_db = {:adapter  => "postgresql",
     :host     => "myhost",
     :username => "myuser",
     :password => "mypass",
     :database => "somedatabase"}
    

    现在从控制台连接到这个远程数据库:

    ActiveRecord::Base.establish_connection(follower_db)
    

    现在您在控制台中输入的任何查询都将在此数据库上运行。

    【讨论】:

    • 如果你运行heroku config,你可以找到follower的名字,然后直接调用如下代码:ActiveRecord::Base.establish_connection(ENV['HEROKU_POSTGRESQL_FOLLOWER_URL'])
    【解决方案2】:

    这将使用 Heroku 应用中 FOLLOWER_DATABASE_URL 环境变量中的关注者数据库凭据来启动一个 Rails 控制台,该控制台直接连接到关注者而不是提升的数据库。通常,Rails 默认设置为从 DATABASE_URL 读取,这只是在控制台会话期间将其设置为不同的值。

    heroku run 'DATABASE_URL=$FOLLOWER_DATABASE_URL rails console'

    【讨论】:

    • 这是多年来真正回答这个问题的所有其他尝试中唯一正确的答案。
    【解决方案3】:

    如果您担心意外删除内容,请使用沙盒标志运行控制台

    heroku run console --sandbox --app app-name
    

    您的更改将在会话结束时回滚。

    【讨论】:

      【解决方案4】:

      控制台当然有它的位置,但如果我想检查数据库中的数据,那么我宁愿直接查看它,而不需要 ActiveRecord 等。我发现在许多情况下,使用控制台要求您检查生成的 SQL 以确保没有(例如)范围滑入。

      我建议您尝试养成使用 SQL 接口(可能是 PgAdminIII)而不是控制台的习惯——如果您不想麻烦从客户端连接,Heroku 数据剪辑甚至可以工作(虽然 psql 连接字符串是从数据库页面提供给您的)。

      【讨论】:

        【解决方案5】:

        数据库追随者是主数据库的只读副本,它与主数据库数据保持同步。在主数据库中提交写入和其他数据修改时,更改会实时流式传输到从属数据库。

        来源 - https://devcenter.heroku.com/articles/heroku-postgres-follower-databases

        【讨论】:

        • 谢谢,但我的问题是我是否可以在从属数据库上运行控制台(这样控制台中只允许读取,而我不会意外删除主数据库上的东西)。跨度>
        猜你喜欢
        • 2021-09-14
        • 2013-03-09
        • 1970-01-01
        • 1970-01-01
        • 2018-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-10
        相关资源
        最近更新 更多