2021-08-11 07:56:58 -07:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class AddDirectToQuestions < ActiveRecord::Migration[5.2]
|
|
|
|
def change
|
|
|
|
add_column :questions, :direct, :boolean, null: false, default: false
|
|
|
|
|
|
|
|
# default all legacy questions to direct
|
2023-10-19 16:37:34 -07:00
|
|
|
execute "UPDATE questions SET direct = true;"
|
2021-08-11 07:56:58 -07:00
|
|
|
|
|
|
|
# All questions where
|
|
|
|
# - the author is not 'justask' (generated questions), and
|
|
|
|
# - the question wasn't asked anonymously
|
|
|
|
# can be direct or not. This depends on if the question has more than one answer
|
|
|
|
execute "
|
|
|
|
UPDATE questions
|
|
|
|
SET direct = (NOT (questions.answer_count > 1))
|
|
|
|
WHERE author_name <> 'justask'
|
|
|
|
OR NOT author_is_anonymous;"
|
|
|
|
|
|
|
|
# All questions which exist in at least more than one inbox are not direct
|
|
|
|
execute "
|
|
|
|
UPDATE questions
|
|
|
|
SET direct = false
|
|
|
|
WHERE id IN (
|
|
|
|
SELECT question_id FROM inboxes GROUP BY question_id HAVING count(question_id) > 1
|
|
|
|
);"
|
|
|
|
end
|
|
|
|
end
|