From a7809d13e88468e2c044d8e74f85ce9277fdf042 Mon Sep 17 00:00:00 2001 From: f Date: Sat, 14 May 2022 18:59:22 -0300 Subject: [PATCH] deduplicar arduinos --- .../20220514213623_deduplicate_arduinos.rb | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 db/migrate/20220514213623_deduplicate_arduinos.rb diff --git a/db/migrate/20220514213623_deduplicate_arduinos.rb b/db/migrate/20220514213623_deduplicate_arduinos.rb new file mode 100644 index 0000000..f10b8f7 --- /dev/null +++ b/db/migrate/20220514213623_deduplicate_arduinos.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +# Elimina arduinos multiplicados +class DeduplicateArduinos < ActiveRecord::Migration[6.1] + def up + Raspberry.find_each do |raspberry| + unique_local_ids = raspberry.arduinos.distinct(:local_id).pluck(:local_id) + + unique_local_ids.each do |unique_local_id| + arduinos = raspberry.arduinos.where(local_id: unique_local_id) + unique_arduino = arduinos.first + duplicated_arduinos = arduinos.where.not(id: unique_arduino.id) + + result = Sensor.where(arduino_id: duplicated_arduinos.pluck(:id)).update_all(arduino_id: unique_arduino.id) + duplicated_arduinos.destroy_all if result + end + end + end + + def down; end +end