ruby-on-rails – 如何自动将Heroku pgbackup发送到S3
发布时间:2020-12-17 02:41:34 所属栏目:百科 来源:网络整理
导读:我们使用Heroku的PG备份,这是很棒的 http://addons.heroku.com/pgbackups 我目前每天手动将备份下载到我的计算机上,然后将其上传到我的S3帐户.有谁知道如何设置一个cron作业来自动创建备份(每天很好)并将其直接发送到我的S3帐户? 解决方法 如果你将它添加到
我们使用Heroku的PG备份,这是很棒的
http://addons.heroku.com/pgbackups
我目前每天手动将备份下载到我的计算机上,然后将其上传到我的S3帐户.有谁知道如何设置一个cron作业来自动创建备份(每天很好)并将其直接发送到我的S3帐户? 解决方法
如果你将它添加到lib / tasks并让运行herkou的cron插件运行:
namespace :heroku do desc "PostgreSQL database backups from Heroku to Amazon S3" task :backup => :environment do begin require 'right_aws' puts "[#{Time.now}] heroku:backup started" name = "#{ENV['APP_NAME']}-#{Time.now.strftime('%Y-%m-%d-%H%M%S')}.dump" db = ENV['DATABASE_URL'].match(/postgres://([^:]+):([^@]+)@([^/]+)/(.+)/) system "PGPASSWORD=#{db[2]} pg_dump -Fc -i --username=#{db[1]} --host=#{db[3]} #{db[4]} > tmp/#{name}" s3 = RightAws::S3.new(ENV['s3_access_key_id'],ENV['s3_secret_access_key']) bucket = s3.bucket("#{ENV['APP_NAME']}-heroku-backups",true,'private') bucket.put(name,open("tmp/#{name}")) system "rm tmp/#{name}" puts "[#{Time.now}] heroku:backup complete" # rescue Exception => e # require 'toadhopper' # Toadhopper(ENV['hoptoad_key']).post!(e) end end end task :cron => :environment do Rake::Task['heroku:backup'].invoke (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |