]> git.openstreetmap.org Git - rails.git/blobdiff - db/migrate/044_create_user_roles.rb
Merge remote-tracking branch 'upstream/pull/5288'
[rails.git] / db / migrate / 044_create_user_roles.rb
index 0db3ea77e5fc01976419aa297ddad97b3b5b6152..ca00d15d4cda81b8acc8ec9377847d2200050527 100644 (file)
@@ -1,31 +1,38 @@
-require '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.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.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