# 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] polls_votes["#{user_id}"] = ::JSON.parse(pcf.value || "{}") end pcf = PostCustomField.find_or_create_by(name: "polls-votes", post_id: post_id) pcf.value = ::JSON.parse(pcf.value || "{}").merge(polls_votes).to_json pcf.save end end def down end end