discourse/db/migrate/20140318150412_add_excerpt_...

29 lines
771 B
Ruby

# frozen_string_literal: true
class AddExcerptToTopics < ActiveRecord::Migration[4.2]
def up
add_column :topics, :excerpt, :string, limit: 1000
topic_ids =
execute("SELECT id FROM topics WHERE pinned_at IS NOT NULL").map { |r| r["id"].to_i }
topic_ids.each do |topic_id|
cooked =
execute(
"SELECT cooked FROM posts WHERE topic_id = #{topic_id} ORDER BY post_number ASC LIMIT 1",
)[
0
][
"cooked"
]
if cooked
excerpt = ExcerptParser.get_excerpt(cooked, 220, strip_links: true)
execute "UPDATE topics SET excerpt = #{ActiveRecord::Base.sanitize(excerpt)} WHERE id = #{topic_id}"
end
end
end
def down
remove_column :topics, :excerpt
end
end