Cleanup empty signatures
Some relayables from redmatrix and hubzilla have empty signatures. They are invalid and break therefore the user data export. closes #7644
This commit is contained in:
parent
2e9c6f46dc
commit
9673f45ff9
2 changed files with 45 additions and 0 deletions
|
|
@ -40,6 +40,7 @@ after you've upgraded.
|
|||
* Handle duplicate account deletions [#7639](https://github.com/diaspora/diaspora/pull/7639)
|
||||
* Handle duplicate account migrations [#7641](https://github.com/diaspora/diaspora/pull/7641)
|
||||
* Handle bugs related to missing users [#7632](https://github.com/diaspora/diaspora/pull/7632)
|
||||
* Cleanup empty signatures [#7644](https://github.com/diaspora/diaspora/pull/7644)
|
||||
|
||||
## Features
|
||||
* Ask for confirmation when leaving a submittable comment field [#7530](https://github.com/diaspora/diaspora/pull/7530)
|
||||
|
|
|
|||
44
db/migrate/20171017221434_cleanup_empty_signatures.rb
Normal file
44
db/migrate/20171017221434_cleanup_empty_signatures.rb
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class CleanupEmptySignatures < ActiveRecord::Migration[5.1]
|
||||
class Comment < ApplicationRecord
|
||||
belongs_to :commentable, polymorphic: true
|
||||
|
||||
has_one :signature, class_name: "CommentSignature", dependent: :delete
|
||||
|
||||
before_destroy do
|
||||
Like.where(target_type: "Comment", target_id: id).destroy_all
|
||||
ActsAsTaggableOn::Tagging.where(taggable_type: "Comment", taggable_id: id).destroy_all
|
||||
end
|
||||
|
||||
after_destroy do
|
||||
commentable.update_comments_counter
|
||||
end
|
||||
end
|
||||
|
||||
class Like < ApplicationRecord
|
||||
belongs_to :target, polymorphic: true
|
||||
|
||||
has_one :signature, class_name: "LikeSignature", dependent: :delete
|
||||
|
||||
after_destroy do
|
||||
target.update_likes_counter
|
||||
end
|
||||
end
|
||||
|
||||
class PollParticipation < ApplicationRecord
|
||||
belongs_to :poll_answer, counter_cache: :vote_count
|
||||
|
||||
has_one :signature, class_name: "PollParticipationSignature", dependent: :delete
|
||||
end
|
||||
|
||||
def up
|
||||
Comment.joins("INNER JOIN comment_signatures as signature ON comments.id = signature.comment_id")
|
||||
.where("signature.author_signature = ''").destroy_all
|
||||
Like.joins("INNER JOIN like_signatures as signature ON likes.id = signature.like_id")
|
||||
.where("signature.author_signature = ''").destroy_all
|
||||
PollParticipation.joins("INNER JOIN poll_participation_signatures as signature " \
|
||||
"ON poll_participations.id = signature.poll_participation_id")
|
||||
.where("signature.author_signature = ''").destroy_all
|
||||
end
|
||||
end
|
||||
Loading…
Reference in a new issue