users: add is_deleted flag.
Add is_deleted flag to users table in preparation for fixing #4555.
This commit is contained in:
8
db/migrate/20221106062419_add_is_deleted_to_users.rb
Normal file
8
db/migrate/20221106062419_add_is_deleted_to_users.rb
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
class AddIsDeletedToUsers < ActiveRecord::Migration[7.0]
|
||||||
|
disable_ddl_transaction!
|
||||||
|
|
||||||
|
def change
|
||||||
|
add_column :users, :is_deleted, :boolean, null: false, default: false
|
||||||
|
add_index :users, :is_deleted, where: "is_deleted = TRUE", algorithm: :concurrently
|
||||||
|
end
|
||||||
|
end
|
||||||
13
script/fixes/125_set_users_is_deleted.rb
Executable file
13
script/fixes/125_set_users_is_deleted.rb
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
require_relative "base"
|
||||||
|
|
||||||
|
with_confirmation do
|
||||||
|
deleted_users = User.where_regex(:name, "^user_[0-9]+~*$").where(is_deleted: false)
|
||||||
|
|
||||||
|
deleted_users.find_each do |user|
|
||||||
|
puts user.attributes.slice("id", "name", "level", "created_at", "last_logged_in_at").to_json
|
||||||
|
end
|
||||||
|
|
||||||
|
deleted_users.update_all(is_deleted: true) if ENV.fetch("FIX", "false").truthy?
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user