Class: AddConfirmableToDevise
- Inherits:
-
ActiveRecord::Migration
- Object
- ActiveRecord::Migration
- AddConfirmableToDevise
- Defined in:
- lib/generators/happy_seed/devise_confirmable/templates/add_confirmable_to_devise.rb
Instance Method Summary collapse
- #down ⇒ Object
-
#up ⇒ Object
Note: You can’t use change, as User.update_all will fail in the down migration.
Instance Method Details
#down ⇒ Object
20 21 22 23 |
# 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 ⇒ Object
Note: You can’t use change, as User.update_all will fail in the down migration
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 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 |