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:
20
script/fixes/093_fix_invalid_artist_names.rb
Executable file
20
script/fixes/093_fix_invalid_artist_names.rb
Executable 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
|
||||
Reference in New Issue
Block a user