def copy_from_archive(conditions,delete=true)
where = sanitize_sql(conditions)
where = where.gsub("#{table_name}","archived_#{table_name}") unless where.nil? || where =~ /archived/
unless where == ""
found = self::Archive.where(where)
else
found = self::Archive.all
end
found.each do |m|
self.transaction do
my_attribute_names = self.new.attribute_names
attrs = m.attributes.reject{|k,v| !my_attribute_names.include?(k.to_s)}
if self.where(:id=>m.id).empty?
new_m = self.create(attrs)
connection.execute(%Q{UPDATE #{table_name}
SET #{self.primary_key} = #{m.id}
WHERE #{self.primary_key} = #{new_m.id}
})
else
self.where(:id=>m.id).first.update_attributes(attrs)
end
m.destroy if delete
end
end
end