【问题标题】:Is it possible to have a Heroku Postgres DB replicate down to a slave DB on my laptop?是否可以将 Heroku Postgres DB 复制到我笔记本电脑上的从属数据库?
【发布时间】:2013-02-11 19:44:31
【问题描述】:

我想让我托管在 Heroku 上的主 Postgres 数据库复制到我笔记本电脑上的从属数据库。这可能吗?

Heroku 的文档讨论了托管在 Heroku 中的 master 和 slave: https://devcenter.heroku.com/articles/heroku-postgres-follower-databases

有人问是否有可能在 Heroku 之外拥有主人而在 Heroku 内部拥有奴隶(不是): Follow external database from Heroku

我还没有看到相反的答案——主人在 Heroku,奴隶在外面。

我为什么要这个?加快发展。由于我的应用程序在本地运行并且数据库在云中,因此往返时间很长,因此数据访问速度很慢。大多数数据访问是只读的。如果我可以有一个本地奴隶,它会大大加快速度。

相关:如果我的笔记本电脑断开了一段时间怎么办?这会给主人带来麻烦吗?

【问题讨论】:

    标签: postgresql heroku replication


    【解决方案1】:

    您不能在 Heroku 网络之外创建追随者(从属)——追随者需要超级用户访问权限才能创建,而 Heroku Postgres 不提供,因此您只能在 Heroku 上运行追随者。

    如果你想在本地下载一个副本以供使用/检查,你可以使用 pgbackups 这样做:https://devcenter.heroku.com/articles/heroku-postgres-import-export

    【讨论】:

      【解决方案2】:

      我强烈推荐这个程序Parity

      它使用漂亮的命令行界面将最后一个 Heroku 备份复制到您的本地计算机:

      development restore production

      【讨论】:

        【解决方案3】:

        我宁愿时不时地从 Heroku 中提取生产数据库的内容。

        $ heroku db:pull
        

        您可以通过 rake 任务加快速度。

        # lib/tasks/deployment.rake
        namespace :production do
          desc 'Pull the production DB to the local env'
          task :pull_db do
            puts   'Pulling PRODUCTION db to local...'
            system 'heroku db:pull --remote MY_REMOTE_NAME --confirm MY_APP_NAME'
            puts   'Pulled production db to local'
          end
        end
        

        您可以致电rake production:pull_db 覆盖您的本地开发数据库。

        【讨论】:

        • 不要使用db:pull。它已从文档中删除(对于 Heroku Postgres)。使用pgbackups 并从那里下载副本,或自己使用pg_dump
        • 感谢您的来信。我已经使用了一段时间了,它可能不再是最新的方式了。
        猜你喜欢
        • 2013-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-13
        • 2016-11-06
        • 2016-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多