diff --git a/db/migrate/20170914202650_cleanup_invalid_likes.rb b/db/migrate/20170914202650_cleanup_invalid_likes.rb new file mode 100644 index 000000000..2f1805fa0 --- /dev/null +++ b/db/migrate/20170914202650_cleanup_invalid_likes.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +class CleanupInvalidLikes < ActiveRecord::Migration[5.1] + class Like < ApplicationRecord + end + + def up + Like.where(target_type: "Post").joins("LEFT OUTER JOIN posts ON posts.id = likes.target_id") + .where("posts.id IS NULL").delete_all + Like.where(target_type: "Comment").joins("LEFT OUTER JOIN comments ON comments.id = likes.target_id") + .where("comments.id IS NULL").delete_all + end +end