discourse/db/migrate/20141216112341_resolve_duplicate_group_names.rb
Sam Saffron 0c52537f10 DEV: update rubocop to version 0.77
We like to stay as close as possible to latest with rubocop cause the cops
get better.

This update required some code changes, specifically the default is to avoid
explicit returns where implicit is done

Also this renames a few rules
2019-12-10 11:48:39 +11:00

26 lines
706 B
Ruby

# frozen_string_literal: true
class ResolveDuplicateGroupNames < ActiveRecord::Migration[4.2]
def up
results = DB.query_single 'SELECT id FROM groups
WHERE name ILIKE
(SELECT lower(name)
FROM groups
GROUP BY lower(name)
HAVING count(*) > 1);'
groups = Group.where id: results
groups.group_by { |g| g.name.downcase }.each do |key, value|
value.each_with_index do |dup, index|
dup.update! name: "#{dup.name[0..18]}_#{index + 1}" if index > 0
end
end
end
def down
# does not reverse changes
end
end