From 283b008e97b25e9c5e85184ed2add6ef4ad30ff5 Mon Sep 17 00:00:00 2001 From: Michael Kohl Date: Fri, 19 Feb 2021 08:16:29 +0700 Subject: [PATCH] Add data update script for backfilling usernames (#12728) --- .../20210218041143_backfill_usernames.rb | 9 +++++++++ .../data_update_scripts/backfill_usernames_spec.rb | 14 ++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 lib/data_update_scripts/20210218041143_backfill_usernames.rb create mode 100644 spec/lib/data_update_scripts/backfill_usernames_spec.rb diff --git a/lib/data_update_scripts/20210218041143_backfill_usernames.rb b/lib/data_update_scripts/20210218041143_backfill_usernames.rb new file mode 100644 index 000000000..c7878f7bc --- /dev/null +++ b/lib/data_update_scripts/20210218041143_backfill_usernames.rb @@ -0,0 +1,9 @@ +module DataUpdateScripts + class BackfillUsernames + def run + User.where(username: nil).find_each do |user| + user.update(username: "user#{user.id}") + end + end + end +end diff --git a/spec/lib/data_update_scripts/backfill_usernames_spec.rb b/spec/lib/data_update_scripts/backfill_usernames_spec.rb new file mode 100644 index 000000000..3bf89bee0 --- /dev/null +++ b/spec/lib/data_update_scripts/backfill_usernames_spec.rb @@ -0,0 +1,14 @@ +require "rails_helper" +require Rails.root.join( + "lib/data_update_scripts/20210218041143_backfill_usernames.rb", +) + +describe DataUpdateScripts::BackfillUsernames do + it " " do + user = create(:user) + user.update_column(:username, nil) + expect do + described_class.new.run + end.to change { user.reload.username }.from(nil).to("user#{user.id}") + end +end