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
This commit is contained in:
parent
00392d3c63
commit
fa08b5079d
|
@ -76,9 +76,14 @@ namespace :mastodon do
|
||||||
end
|
end
|
||||||
|
|
||||||
namespace :users do
|
namespace :users do
|
||||||
desc 'clear unconfirmed users'
|
desc 'Clear out unconfirmed users'
|
||||||
task clear: :environment do
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Reference in New Issue