]> git.openstreetmap.org Git - rails.git/blobdiff - db/migrate/044_create_user_roles.rb
Merge branch 'pull/4985'
[rails.git] / db / migrate / 044_create_user_roles.rb
index 39e224c0670509f93a286af1b310882e9c972c57..ca00d15d4cda81b8acc8ec9377847d2200050527 100644 (file)
@@ -1,32 +1,38 @@
-require 'lib/migrate'
+class CreateUserRoles < ActiveRecord::Migration[4.2]
+  class User < ApplicationRecord
+  end
+
+  class UserRole < ApplicationRecord
+  end
 
-class CreateUserRoles < ActiveRecord::Migration
   def self.up
-    create_enumeration :user_role_enum, ["administrator", "moderator"]
+    create_enum :user_role_enum, %w[administrator moderator]
 
     create_table :user_roles do |t|
       t.column :user_id, :bigint, :null => false
+      t.column :role, :user_role_enum, :null => false
 
-      t.timestamps
+      t.timestamps :null => true
     end
-    add_column :user_roles, :role, :user_role_enum, :null => false
 
-    User.all(:conditions => ['administrator = ?', true]).each do |user|
+    User.where(:administrator => true).each do |user|
       UserRole.create(:user_id => user.id, :role => "administrator")
     end
+
     remove_column :users, :administrator
 
-    add_foreign_key :user_roles, [:user_id], :users, [:id]
-    add_index :user_roles, [:user_id]
+    add_foreign_key :user_roles, :users, :name => "user_roles_user_id_fkey"
   end
 
   def self.down
     add_column :users, :administrator, :boolean, :default => false, :null => false
-    UserRole.all(:conditions => ['role = ?', "administrator"]).each do |role|
+
+    UserRole.where(:role => "administrator").each do |role|
       user = User.find(role.user_id)
       user.administrator = true
       user.save!
     end
+
     drop_table :user_roles
     drop_enumeration :user_role_enum
   end