def self.backup(installer)
return unless connect(installer)
interesting_tables = ActiveRecord::Base.connection.tables.sort - ['sessions']
backup_dir = File.join(installer.install_directory, 'db', 'backup')
FileUtils.mkdir_p backup_dir
backup_file = File.join(backup_dir, "backup-#{Time.now.strftime('%Y%m%d-%H%M')}.yml")
installer.message "Backing up to #{backup_file}"
data = {}
interesting_tables.each do |tbl|
data[tbl] = ActiveRecord::Base.connection.select_all("select * from #{tbl}")
end
File.open(backup_file,'w') do |file|
YAML.dump data, file
end
end