# 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