X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/3e99bbf5a9e124a59fc5ae72c863e89af7fa8c46..cb6d528ecb9abe916e11c607038290435e6b35d9:/db/migrate/044_create_user_roles.rb
diff --git a/db/migrate/044_create_user_roles.rb b/db/migrate/044_create_user_roles.rb
index 6544bbba1..ece98a54d 100644
--- a/db/migrate/044_create_user_roles.rb
+++ b/db/migrate/044_create_user_roles.rb
@@ -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_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