Files
danbooru/script/fixes/093_fix_invalid_artist_names.rb
evazion 98aee048f2 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`.
2022-01-20 16:01:31 -06:00

21 lines
622 B
Ruby
Executable File

#!/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