db/migrate/YYYYMMDDxxx_add_confirmable_to_devise.rb

9 views
Skip to first unread message

Ralph Shnelvar

unread,
Jul 24, 2017, 12:54:39 AM7/24/17
to Ruby on Rails: Talk
So I'm following along in https://github.com/plataformatec/devise/wiki/How-To:-Add-:confirmable-to-Users when I get to

Create a New Migration


I'll recreate the migration they recommend here.

class AddConfirmableToDevise < ActiveRecord::Migration
 
# Note: You can't use change, as User.update_all will fail in the down migration
 
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

 
def down
    remove_columns
:users, :confirmation_token, :confirmed_at, :confirmation_sent_at
   
# remove_columns :users, :unconfirmed_email # Only if using reconfirmable
 
end
end


My question: Why is the migration

rails g migration add_confirmable_to_devise
?


Wouldn't the better name be

rails g migration add_confirmable_to_users
?


Am I missing something?


Reply all
Reply to author
Forward
0 new messages