mastodon/db/post_migrate/20240307180905_migrate_devi...

29 lines
684 B
Ruby
Raw Normal View History

# frozen_string_literal: true
class MigrateDeviseTwoFactorSecrets < ActiveRecord::Migration[7.1]
disable_ddl_transaction!
def up
users_with_otp_enabled.find_each do |user|
# Gets the new value on already-updated users
# Falls back to legacy value on not-yet-migrated users
otp_secret = user.otp_secret
Rails.logger.debug { "Processing #{user.email}" }
# This is a no-op for migrated users and updates format for not migrated
user.update!(otp_secret: otp_secret)
end
end
def down
raise ActiveRecord::IrreversibleMigration
end
private
def users_with_otp_enabled
User.where(otp_required_for_login: true)
end
end