class ChangeEntryLastError < ActiveRecord::Migration[5.1]

  def up
    # Use raw query to change text to JSON as last_error field is now serialized
    results = ActiveRecord::Base.connection.execute("SELECT id, last_error from bulkrax_entries WHERE last_error IS NOT null AND last_error LIKE '%\n\n%'")
    results.each do | error |
      old_errors = error['last_error'].gsub("'","''").split("\n\n")
      new_error = {
        'error_class' => 'unknown', 
        'error_message' => old_errors.first,
        'error_trace' => old_errors.last
      }
      ActiveRecord::Base.connection.execute("UPDATE bulkrax_entries SET last_error = '#{new_error.to_json}' WHERE id = '#{error['id']}'")
    end
  end

  def down; end

end