discourse/db/migrate/20190424065841_add_post_image_indexes.rb

25 lines
580 B
Ruby
Raw Normal View History

class AddPostImageIndexes < ActiveRecord::Migration[5.2]
def change
%w{
large_images
broken_images
downloaded_images
}.each do |field|
execute <<~SQL
DELETE FROM post_custom_fields f
WHERE name = '#{field}' AND id > (
SELECT MIN(f2.id) FROM post_custom_fields f2
WHERE f2.post_id = f.post_id AND f2.name = f.name
)
SQL
add_index :post_custom_fields, [:post_id],
name: "post_custom_field_#{field}_idx",
unique: true,
where: "name = '#{field}'"
end
end
end