require “yaml_db” require “aws-sdk” require_relative “./yaml_db/serialization_helper”

def s3

AWS::S3.new(
        access_key_id: ENV["AWS_ACCESS_KEY"],
        secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"]
        )

end

def app_name

Rails.application.class.parent_name.underscore

end

def s3_object

bucket = s3.buckets[app_name]

unless bucket.exists?
        bucket = s3.buckets.create(app_name)
end

bucket

end

namespace :rails_dump2_s3 do

    desc "execute db:data:dump, and submit to S3"
    task :dump => :environment do

            prefix = ENV["DUMP2S3_PREFIX"] || ""

            name = []
            name << "base"
            name << Rails.env
            name << prefix if prefix.present?
            name << "#{Time.now.strftime("%Y-%m-%d-%H%M%S")}"
            filename = name.join("-")

            system("bin/rake db:data:dump_dir dir=#{filename}")
system("zip db/#{filename}.zip db/#{filename}/*")
s3_object.objects["#{filename}.zip"].write(file: "db/#{filename}.zip")

            # アップロードしたファイルの削除
            system("rm -rf db/#{filename}.zip")
            system("rm -rf db/#{filename}*")
    end

end