20150327102802_create_prover_outputs.rb revision 4a7c98053955ca61668ed12b235ddf2fc9976142
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenclass CreateProverOutputs < ActiveRecord::Migration
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen def up
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen create_table :prover_outputs do |t|
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen t.integer :proof_attempt_id, null: false
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen t.text :content
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen t.text :locid
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen t.timestamps
88187ee880b4829443e0d55ea7d145d9d5880217Timo Sirainen end
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen ProofAttempt.find_each do |proof_attempt|
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen prover_output = ProverOutput.new
aa0647f2debf0d48d504a321186f66c85596aaf4Timo Sirainen content =
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen ProofAttempt.where(id: proof_attempt.id).pluck(:prover_output).first
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen # The locid will be generated in the before_create hook
ccec5f82349eae44087900c0e64ed1fd5a1a6fcaTimo Sirainen prover_output.update_attributes!({proof_attempt_id: proof_attempt.id,
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen content: content},
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen without_protection: true)
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen end
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
5137d2d80255938a0f5fb8f3c1a21b34cf11ada3Timo Sirainen remove_column :proof_attempts, :prover_output
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen end
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
ccc895c0358108d2304239063e940b7d75f364abTimo Sirainen def down
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen add_column :proof_attempts, :prover_output, :text
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen ProverOutput.find_each do |prover_output|
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen prover_output.proof_attempt.
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen update_attribute!(prover_output: ProverOutput.
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen where(id: prover_output.id).pluck(:content).first)
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen end
88187ee880b4829443e0d55ea7d145d9d5880217Timo Sirainen
5137d2d80255938a0f5fb8f3c1a21b34cf11ada3Timo Sirainen drop_table :prover_outputs
5137d2d80255938a0f5fb8f3c1a21b34cf11ada3Timo Sirainen end
5137d2d80255938a0f5fb8f3c1a21b34cf11ada3Timo Sirainenend
5137d2d80255938a0f5fb8f3c1a21b34cf11ada3Timo Sirainen