4253: Fixup migration by having Rails check for duplicate usernames. 4253-user-usernames-wip
authorBrett Smith <brett@curoverse.com>
Wed, 25 Mar 2015 14:16:51 +0000 (10:16 -0400)
committerBrett Smith <brett@curoverse.com>
Wed, 25 Mar 2015 14:16:51 +0000 (10:16 -0400)
services/api/db/migrate/20150317132720_add_username_to_users.rb

index 67724147f31436625a34c7535823140acce41878..de2fc9648b2d54bcde75b3e6ad11658c86c98b26 100644 (file)
@@ -107,17 +107,14 @@ class AddUsernameToUsers < ActiveRecord::Migration
     recreate_search_index(SEARCH_INDEX_COLUMNS + ["username"])
 
     [Link, Log, User].each { |m| m.reset_column_information }
+    User.validates(:username, uniqueness: true, allow_nil: true)
     User.where(is_active: true).order(created_at: :asc).find_each do |user|
       start_log = Log.log_for(user)
       each_wanted_username(user) do |username|
         user.username = username
-        begin
-          user.save!
-          break
-        rescue ActiveRecord::RecordNotUnique
-          # We'll try the next username.
-        end
+        break if user.valid?
       end
+      user.save!
       Log.log_update(user, start_log)
     end
   end