debian-mirror-gitlab/db/migrate/20160616102642_remove_duplicated_keys.rb

19 lines
584 B
Ruby
Raw Normal View History

2018-12-23 12:14:25 +05:30
class RemoveDuplicatedKeys < ActiveRecord::Migration[4.2]
2016-06-22 15:30:34 +05:30
def up
select_all("SELECT fingerprint FROM #{quote_table_name(:keys)} GROUP BY fingerprint HAVING COUNT(*) > 1").each do |row|
fingerprint = connection.quote(row['fingerprint'])
execute(%Q{
2016-08-24 12:49:21 +05:30
DELETE FROM #{quote_table_name(:keys)}
2016-06-22 15:30:34 +05:30
WHERE fingerprint = #{fingerprint}
AND id != (
SELECT id FROM (
SELECT max(id) AS id
2016-08-24 12:49:21 +05:30
FROM #{quote_table_name(:keys)}
2016-06-22 15:30:34 +05:30
WHERE fingerprint = #{fingerprint}
) max_ids
)
})
end
end
end