Я бы сделал это так с SQL-запросом, потому что это касается всей таблицы, и итерация замедлила бы его бесполезно.
add_column :table_name, :password_md5, :string
ActiveRecord::Base.connection().execute("UPDATE table_name SET password_md5=MD5(password_plain)")