discourse/db/migrate/20190424065841_add_post_image_indexes.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

27 lines
611 B
Ruby
Raw Normal View History

# frozen_string_literal: true
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