我希望将我的主Postgres数据库(在Heroku上托管)复制到我笔记本电脑上的从数据库中。这可能吗?
Heroku的文档讲述了Heroku中托管的主人和奴隶: https://devcenter.heroku.com/articles/heroku-postgres-follower-databases
有人问是否可以让Heroku外面的主人和Heroku内部的奴隶(它不是): Follow external database from Heroku
我还没有看到相反的答案 - 让Heroku的主人和外面的奴隶。
为什么我要这个?加快发展。由于我的应用程序在本地运行,而数据库在云端运行,往返时间很长,因此数据访问速度很慢。大多数数据访问都是只读的。如果我可以有一个本地奴隶,它会显着加快速度。
相关:如果我的笔记本电脑断开了一段时间怎么办?这会给主人造成问题吗?
答案 0 :(得分:7)
你不能在Heroku网络之外建立一个追随者(奴隶) - 追随者需要超级用户访问创建,Heroku Postgres不会为你提供,所以你只能在Heroku上运行一个追随者。
如果您想在本地下载副本以供使用/检查,您可以使用pgbackups来执行此操作:https://devcenter.heroku.com/articles/heroku-postgres-import-export
答案 1 :(得分:2)
答案 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
覆盖本地开发数据库。