class ActiveRecord::Snapshot::Create
Attributes
named_snapshot[R]
snapshot[R]
Public Class Methods
call(*args)
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 6 def self.call(*args) new(*args).call end
new(name: nil)
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 10 def initialize(name: nil) @named_snapshot = !name.nil? @snapshot = Snapshot.new(name) end
Public Instance Methods
call()
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 15 def call Stepper.call(self, **steps) end
Private Instance Methods
compress()
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 44 def compress Bzip2.compress(snapshot.dump) end
config()
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 23 def config ActiveRecord::Snapshot.config end
dump()
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 40 def dump config.adapter.dump(tables: config.tables, output: snapshot.dump) end
encrypt()
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 48 def encrypt OpenSSL.encrypt( input: snapshot.compressed, output: snapshot.encrypted ) end
steps()
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 27 def steps { dump: "Create dump of #{config.db.database} at #{snapshot.dump}", compress: "Compress snapshot to #{snapshot.compressed}", encrypt: "Encrypt snapshot to #{snapshot.encrypted}", upload_snapshot: "Upload files to #{config.s3.bucket}" }.tap do |s| next if named_snapshot s[:update_list] = "Update list from #{Version.current} to #{Version.next} with #{snapshot.encrypted}" s[:upload_version_info] = "Upload version info to #{config.s3.bucket}" end end
update_list()
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 55 def update_list Version.increment List.add(version: Version.current, file: snapshot.encrypted) end
upload_snapshot()
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 60 def upload_snapshot snapshot.upload end
upload_version_info()
click to toggle source
# File lib/active_record/snapshot/actions/create.rb, line 64 def upload_version_info Version.upload List.upload end