OSDN Git Service

Init username migration and rake task for create appropriate namespace
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Fri, 23 Nov 2012 03:34:09 +0000 (06:34 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Fri, 23 Nov 2012 03:34:09 +0000 (06:34 +0300)
db/migrate/20121123104937_add_username_to_user.rb [new file with mode: 0644]
lib/tasks/gitlab/activate_namespaces.rake [new file with mode: 0644]

diff --git a/db/migrate/20121123104937_add_username_to_user.rb b/db/migrate/20121123104937_add_username_to_user.rb
new file mode 100644 (file)
index 0000000..04232a1
--- /dev/null
@@ -0,0 +1,5 @@
+class AddUsernameToUser < ActiveRecord::Migration
+  def change
+    add_column :users, :username, :string, null: true
+  end
+end
diff --git a/lib/tasks/gitlab/activate_namespaces.rake b/lib/tasks/gitlab/activate_namespaces.rake
new file mode 100644 (file)
index 0000000..0c7c3e7
--- /dev/null
@@ -0,0 +1,13 @@
+namespace :gitlab do
+  desc "GITLAB | Enable usernames and namespaces for user projects"
+  task activate_namespaces: :environment do
+    User.find_each(batch_size: 500) do |user|
+      User.transaction do
+        username = user.email.match(/^[^@]*/)[0]
+        user.update_attributes!(username: username)
+        user.create_namespace!(code: username, name: user.name)
+        print '.'.green
+      end
+    end
+  end
+end