28 lines
689 B
Ruby
Executable File
28 lines
689 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
require File.expand_path("../../config/environment", File.dirname(__FILE__))
|
|
|
|
class Backup
|
|
class << self
|
|
def create
|
|
dest = SQLite3::Database.new(backup_filename)
|
|
backup = SQLite3::Backup.new(dest, "main", User.connection.raw_connection, "main")
|
|
|
|
backup.step(-1)
|
|
backup.finish
|
|
dest.close
|
|
end
|
|
|
|
private
|
|
def backup_filename
|
|
Rails.root.join("storage", "backups").tap(&:mkpath).join(primary_database_filename)
|
|
end
|
|
|
|
def primary_database_filename
|
|
path = Rails.application.config.database_configuration[Rails.env]["primary"]["database"]
|
|
File.basename(path)
|
|
end
|
|
end
|
|
end
|
|
|
|
Backup.create
|