Files
fizzy/db/migrate/20250404072651_add_last_active_at_to_bubbles.rb
T
2025-04-04 13:46:58 +02:00

20 lines
649 B
Ruby

class AddLastActiveAtToBubbles < ActiveRecord::Migration[8.1]
def change
add_column :bubbles, :last_active_at, :datetime
add_index :bubbles, %i[ last_active_at status ]
execute <<~SQL
update bubbles
set last_active_at = activity.last_active_at
from (
select bubbles.id as bubble_id, coalesce(max(events.created_at), bubbles.created_at) as last_active_at
from bubbles
left join events on bubbles.id = events.bubble_id group by bubbles.id
) as activity
where bubbles.id = activity.bubble_id
SQL
change_column_null :bubbles, :last_active_at, false
end
end