Sha256: 60c595780c4ed03db917d3bd6d4a136e4289a455a3cd88868cd8e1af128ae5a9

Contents?: true

Size: 1.5 KB

Versions: 92

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

class AddChoicesToDecidimSurveyAnswers < ActiveRecord::Migration[5.1]
  class SurveyAnswer < ApplicationRecord
    self.table_name = :decidim_surveys_survey_answers
  end

  class SurveyQuestion < ApplicationRecord
    self.table_name = :decidim_surveys_survey_questions
  end

  def up
    add_column :decidim_surveys_survey_answers, :text_body, :text
    add_column :decidim_surveys_survey_answers, :choices, :jsonb, default: []

    SurveyAnswer.find_each do |answer|
      question = SurveyQuestion.find_by(id: answer.decidim_survey_question_id)

      if %w(single_option multiple_option).include?(question.question_type)
        answer.update!(choices: answer.body)
      else
        answer.update!(text_body: answer.body.first)
      end
    end

    remove_column :decidim_surveys_survey_answers, :body
    rename_column :decidim_surveys_survey_answers, :text_body, :body
  end

  def down
    add_column :decidim_surveys_survey_answers, :jsonb_body, :jsonb, default: []

    SurveyAnswer.find_each do |answer|
      question = SurveyQuestion.find_by(id: answer.decidim_survey_question_id)

      if %w(single_option multiple_option).include?(question.question_type)
        answer.update!(jsonb_body: answer.choices)
      else
        answer.update!(jsonb_body: [answer.body])
      end
    end

    remove_column :decidim_surveys_survey_answers, :choices

    remove_column :decidim_surveys_survey_answers, :body
    rename_column :decidim_surveys_survey_answers, :jsonb_body, :body
  end
end

Version data entries

92 entries across 92 versions & 1 rubygems

Version Path
decidim-surveys-0.14.2 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.14.1 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.13.1 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.12.2 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.13.0 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.12.1 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.13.0.pre1 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.12.0 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.11.2 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.12.0.pre db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.11.1 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.11.0.pre1 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb