discourse/plugins/poll/db/migrate/20151016163051_merge_polls_votes.rb

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

28 lines
736 B
Ruby
Raw Normal View History

# frozen_string_literal: true
class MergePollsVotes < ActiveRecord::Migration[4.2]
def up
PostCustomField
.where(name: "polls")
.order(:post_id)
.pluck(:post_id)
.each do |post_id|
polls_votes = {}
PostCustomField
.where(post_id: post_id)
.where("name LIKE 'polls-votes-%'")
.find_each do |pcf|
user_id = pcf.name["polls-votes-".size..-1]
2015-10-17 01:54:41 +08:00
polls_votes["#{user_id}"] = ::JSON.parse(pcf.value || "{}")
end
pcf = PostCustomField.find_or_create_by(name: "polls-votes", post_id: post_id)
2015-10-17 01:54:41 +08:00
pcf.value = ::JSON.parse(pcf.value || "{}").merge(polls_votes).to_json
pcf.save
end
end
def down
end
end