Fix unique violation in downcase custom emoji domain migration (#9733)

Fix #9727
This commit is contained in:
Eugen Rochko 2019-01-06 23:53:46 +01:00 committed by GitHub
parent 5dbe186585
commit 0e989a5b8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,7 +1,15 @@
class DowncaseCustomEmojiDomains < ActiveRecord::Migration[5.2] class DowncaseCustomEmojiDomains < ActiveRecord::Migration[5.2]
disable_ddl_transaction! disable_ddl_transaction!
def change def up
duplicates = CustomEmoji.connection.select_all('SELECT string_agg(id::text, \',\') AS ids FROM custom_emojis GROUP BY lower(domain) HAVING count(*) > 1').to_hash
duplicates.each do |row|
CustomEmoji.where(id: row['ids'].split(',')[0...-1]).destroy_all
end
CustomEmoji.in_batches.update_all('domain = lower(domain)') CustomEmoji.in_batches.update_all('domain = lower(domain)')
end end
def down; end
end end