class AddConfirmableToDevise

Public Instance Methods

down() click to toggle source
# File lib/generators/happy_seed/devise_confirmable/templates/add_confirmable_to_devise.rb, line 20
def down
  remove_columns :users, :confirmation_token, :confirmed_at, :confirmation_sent_at
  # remove_columns :users, :unconfirmed_email # Only if using reconfirmable
end
up() click to toggle source

Note: You can't use change, as User.update_all will fail in the down migration

# File lib/generators/happy_seed/devise_confirmable/templates/add_confirmable_to_devise.rb, line 3
def up
  add_column :users, :confirmation_token, :string
  add_column :users, :confirmed_at, :datetime
  add_column :users, :confirmation_sent_at, :datetime
  add_column :users, :unconfirmed_email, :string # Only if using reconfirmable
  add_index :users, :confirmation_token, unique: true
  # User.reset_column_information # Need for some types of updates, but not for update_all.
  # To avoid a short time window between running the migration and updating all existing
  # users as confirmed, do the following
  # execute("UPDATE users SET confirmed_at = NOW()")
  # All existing user accounts should be able to log in after this.
  # Remind: Rails using SQLite as default. And SQLite has no such function :NOW.
  # Use :date('now') instead of :NOW when using SQLite.
  # => execute("UPDATE users SET confirmed_at = date('now')")
  # Or => User.all.update_all confirmed_at: Time.now
end