discourse/db/migrate/20190312181641_migrate_emai...

32 lines
803 B
Ruby

# frozen_string_literal: true
class MigrateEmailUserOptions < ActiveRecord::Migration[5.2]
def up
# see UserOption.email_level_types
# always = 0, only_while_away: 1, never: 2
add_column :user_options, :email_level, :integer, default: 1, null: false
add_column :user_options, :email_messages_level, :integer, default: 0, null: false
execute <<~SQL
UPDATE user_options
SET email_level = CASE
WHEN email_direct AND email_always
THEN 0
WHEN email_direct AND email_always IS NOT TRUE
THEN 1
ELSE 2
END,
email_messages_level = CASE
WHEN email_private_messages
THEN 0
ELSE 2
END
SQL
end
def down
# See postmigration: 20190312194528_drop_email_user_options_columns.rb
end
end