Sha256: ac34432d9dcb5488f7e8711a4883bd646434eebb1fef60115b5c32bcb8bce773

Contents?: true

Size: 674 Bytes

Versions: 5

Compression:

Stored size: 674 Bytes

Contents

# frozen_string_literal: true

class Add2faFields < ActiveRecord::Migration[7.0]
  class User < ApplicationRecord; end

  def change
    change_table :users do |t|
      t.boolean :otp_enabled, null: false, default: false
      t.string :otp_secret
      t.datetime :last_otp_at
      t.jsonb :hashed_recovery_codes, null: false, default: []
      t.string :session_token
    end

    rename_column :users, :hashed_password, :password_digest

    reversible do |dir|
      dir.up do
        User.find_each do |u|
          u.update_columns(session_token: SecureRandom.hex(32))
        end
        change_column_null :users, :session_token, false
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pages_core-3.15.5 db/migrate/20240126160700_add_2fa_fields.rb
pages_core-3.15.4 db/migrate/20240126160700_add_2fa_fields.rb
pages_core-3.15.3 db/migrate/20240126160700_add_2fa_fields.rb
pages_core-3.15.2 db/migrate/20240126160700_add_2fa_fields.rb
pages_core-3.15.1 db/migrate/20240126160700_add_2fa_fields.rb