Remove group name validation case sensitivity

This commit is contained in:
James Kiesel
2014-12-17 01:07:15 +13:00
parent ed54ea6642
commit 84bed4f9ce
4 changed files with 31 additions and 2 deletions

View File

@@ -0,0 +1,23 @@
class ResolveDuplicateGroupNames < ActiveRecord::Migration
def up
results = Group.exec_sql 'SELECT id FROM groups
WHERE name ILIKE
(SELECT lower(name)
FROM groups
GROUP BY lower(name)
HAVING count(*) > 1);'
groups = Group.where id: results.map { |r| r['id'] }
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