Sha256: 60c595780c4ed03db917d3bd6d4a136e4289a455a3cd88868cd8e1af128ae5a9

Contents?: true

Size: 1.5 KB

Versions: 88

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

88 entries across 88 versions & 1 rubygems

Version Path
decidim-surveys-0.29.1 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.28.4 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.27.9 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.29.0 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.28.3 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.27.8 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.29.0.rc4 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.29.0.rc3 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.29.0.rc2 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.29.0.rc1 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.28.2 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.27.7 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.28.1 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.27.6 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.26.10 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.26.9 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.28.0 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.27.5 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.28.0.rc5 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb
decidim-surveys-0.28.0.rc4 db/migrate/20180405014929_add_choices_to_decidim_survey_answers.rb