class DeviseTokenAuthCreateUsers < ActiveRecord::Migration

def change
  create_table(:<%= user_class.constantize.table_name %>) do |t|
    ## User Info
    t.string :email

    ## Required
    t.string :provider, null: false, default: 'email'
    t.string :uid, null: false, default: ''

    ## Database authenticatable
    t.string :encrypted_password, null: false, default: ''

    ## Recoverable
    t.string   :reset_password_token
    t.datetime :reset_password_sent_at
    t.boolean  :allow_password_change, default: false

    ## Rememberable
    t.datetime :remember_created_at

    ## Trackable
    t.integer  :sign_in_count, default: 0, null: false
    t.datetime :current_sign_in_at
    t.datetime :last_sign_in_at
    t.string   :current_sign_in_ip
    t.string   :last_sign_in_ip

    ## Confirmable
    t.string   :confirmation_token
    t.datetime :confirmed_at
    t.datetime :confirmation_sent_at
    t.string   :unconfirmed_email # Only if using reconfirmable

    ## Lockable
    t.integer  :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
    t.string   :unlock_token # Only if unlock strategy is :email or :both
    t.datetime :locked_at

    ## Tokens
    t.text :tokens

    t.timestamps
  end

  add_index :users, :email,                unique: true
  add_index :users, :uid,                  unique: true
  add_index :users, [:uid, :provider],     unique: true
  add_index :users, :reset_password_token, unique: true
  add_index :users, :confirmation_token,   unique: true
  add_index :users, :unlock_token,         unique: true
end

end