]> git.openstreetmap.org Git - rails.git/blobdiff - db/migrate/044_create_user_roles.rb
Merge remote-tracking branch 'upstream/pull/2256'
[rails.git] / db / migrate / 044_create_user_roles.rb
index 6544bbba1dc3e0fcdf310f6de655678896f35100..b62d8b89050c47c0e6d2343561ca7a9245297741 100644 (file)
@@ -1,31 +1,34 @@
-require 'migrate'
+require "migrate"
 
-class CreateUserRoles < ActiveRecord::Migration
+class CreateUserRoles < ActiveRecord::Migration[4.2]
   def self.up
-    create_enumeration :user_role_enum, ["administrator", "moderator"]
+    create_enumeration :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_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