artists: fix old artists with invalid names.

There are a lot of old artist entries with Japanese names. These names
are now invalid and these artist entries can't be edited because they
fail validation checks.

Add a fix script to delete all artist entries with non-ASCII names, and
rename them to `artist_1234`.
This commit is contained in:
evazion
2022-01-20 16:01:31 -06:00
parent 57a7b19180
commit 98aee048f2

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env ruby
require_relative "base"
with_confirmation do
CurrentUser.scoped(User.system) do
Artist.where("name ~ '[^[:ascii:]]'").find_each do |artist|
artist.other_names += [artist.name]
artist.name = "artist_#{artist.id}"
artist.is_deleted = true
artist.save!
if artist.saved_changes?
puts "id=#{artist.id} oldname=#{artist.name_before_last_save} newname=`#{artist.name}` other_names=#{artist.other_names}"
end
rescue ActiveRecord::RecordInvalid
puts "id=#{artist.id} name=#{artist.name} error=#{artist.errors.full_messages.join}"
end
end
end