commit: fa08b5079d7f85c098ee9c6a0dd73bde0a20989f
parent: 00392d3c630d7691e3ec92b52e8f91c6c2f6f10a
Author: Eugen <eugen@zeonfederated.com>
Date: Sat, 15 Apr 2017 21:55:28 +0200
Make the rake mastodon:users:clear task properly clear out unconfirmed users (#1777)
Before it cleared out user records only (e-mail, password) without
freeing up the associated username (account record). Furthermore, since
these records have no dependent records (due to no user activity)
they can be deleted quickly with delete_all instead of destroy
Diffstat:
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
@@ -76,9 +76,14 @@ namespace :mastodon do
end
namespace :users do
- desc 'clear unconfirmed users'
+ desc 'Clear out unconfirmed users'
task clear: :environment do
- User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).find_each(&:destroy)
+ # Users that never confirmed e-mail never signed in, means they
+ # only have a user record and an avatar record, with no files uploaded
+ User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).find_in_batches do |batch|
+ Account.where(id: batch.map(&:account_id)).delete_all
+ batch.delete_all
+ end
end
end