是否可以将Heroku Postgres数据库复制到笔记本电脑上的从属数据库中?

时间:2013-02-11 19:44:32

标签: postgresql heroku replication

我希望将我的主Postgres数据库(在Heroku上托管)复制到我笔记本电脑上的从数据库中。这可能吗?

Heroku的文档讲述了Heroku中托管的主人和奴隶: https://devcenter.heroku.com/articles/heroku-postgres-follower-databases

有人问是否可以让Heroku外面的主人和Heroku内部的奴隶(它不是): Follow external database from Heroku

我还没有看到相反的答案 - 让Heroku的主人和外面的奴隶。

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

相关:如果我的笔记本电脑断开了一段时间怎么办?这会给主人造成问题吗?

3 个答案:

答案 0 :(得分:7)

你不能在Heroku网络之外建立一个追随者(奴隶) - 追随者需要超级用户访问创建,Heroku Postgres不会为你提供,所以你只能在Heroku上运行一个追随者。

如果您想在本地下载副本以供使用/检查,您可以使用pgbackups来执行此操作:https://devcenter.heroku.com/articles/heroku-postgres-import-export

答案 1 :(得分:2)

我强烈推荐这个程序Parity

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

development restore production

答案 2 :(得分:0)

我宁愿不时地从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覆盖本地开发数据库。