mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-03-25 01:14:43 +00:00
35 lines
1.1 KiB
Ruby
35 lines
1.1 KiB
Ruby
namespace :auth do
|
|
desc "Migrate from Devise to Rails Authentication"
|
|
task migrate: :environment do
|
|
puts "Running Authentication Migration"
|
|
puts "================================"
|
|
|
|
# Run the migrations
|
|
Rake::Task["db:migrate"].invoke
|
|
|
|
# Ensure all existing users have a password_digest value
|
|
users_without_digest = User.where(password_digest: nil)
|
|
|
|
if users_without_digest.any?
|
|
puts "Setting password_digest for #{users_without_digest.count} users..."
|
|
|
|
ActiveRecord::Base.transaction do
|
|
users_without_digest.each do |user|
|
|
if user.encrypted_password.present?
|
|
# Copy Devise's encrypted_password to password_digest
|
|
# This works because both use bcrypt in the same format
|
|
user.update_column(:password_digest, user.encrypted_password)
|
|
print "."
|
|
else
|
|
puts "\nWARNING: User #{user.id} (#{user.email}) has no encrypted_password!"
|
|
end
|
|
end
|
|
end
|
|
puts "\nDone!"
|
|
else
|
|
puts "All users already have a password_digest."
|
|
end
|
|
|
|
puts "Migration complete."
|
|
end
|
|
end |