diff --git a/script/fixes/060_fix_favgroup_posts.rb b/script/fixes/060_fix_favgroup_posts.rb new file mode 100755 index 000000000..3528b82fd --- /dev/null +++ b/script/fixes/060_fix_favgroup_posts.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby + +require_relative "../../config/environment" + +favgroups = FavoriteGroup.select("*, unnest(string_to_array(post_ids, ' '))::bigint AS post_id") +favgroups = FavoriteGroup.select("*").from(favgroups).where("NOT EXISTS (SELECT 1 FROM posts WHERE id = post_id)") + +FavoriteGroup.transaction do + favgroups.each do |favgroup| + favgroup.remove!(favgroup.post_id) + end +end