gpt4 book ai didi

database - Heroku 自动恢复

转载 作者:搜寻专家 更新时间:2023-10-30 20:39:35 29 4
gpt4 key购买 nike

我需要实现每日备份从一个数据库到另一个数据库的自动传输。数据库和应用程序都托管在 heroku 上。我知道如果使用以下命令从本地计算机手动执行此操作是可能的:

heroku pgbackups:restore DATABASE `heroku pgbackups:url --app production-app` --app staging-app

但是这个过程应该是自动化的,而不是从本地机器运行。我想写一个 rake 来执行这个命令;并在 Heroku Scheduler 插件的帮助下每天运行这个 rake。

有什么想法可以更好地做到这一点吗?或者也许有更好的方法来完成这项任务?

提前致谢。

最佳答案

我设法自己解决了这个问题。它似乎并不那么复杂。这是解决方案,也许对其他人有用:1. 我写了一个脚本,将最新的转储从某个服务器复制到当前服务器的数据库

namespace :backup do
desc "copy the latest dump from a certain server to the DB of the current server"
task restore_last_write_dump: :environment do
last_dump_url = %x(heroku pgbackups:url --app [source_app_name])
system("heroku pgbackups:restore [DB_to_target_app] '#{last_dump_url}' -a [target_app_name] --confirm [target_app_name]")
puts "Restored dump: #{last_dump_url}"
end

end
  1. 为避免在每次向服务器发出请求时进行身份验证,请在应用根目录中创建一个 .netrc 文件(请参阅此处的详细信息 https://devcenter.heroku.com/articles/authentication#usage-examples)

  2. 为 heroku 设置 Scheduler 插件并添加我们的 rake 任务及其运行频率。

就是这样。

关于database - Heroku 自动恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25763574/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com