X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/32f86316712b8b781dfc2ffde0a5b88b742a6627..61c3d97a8ad2891bef0a2eeaa0d60e625b6c2ef2:/db/migrate/044_create_user_roles.rb?ds=sidebyside diff --git a/db/migrate/044_create_user_roles.rb b/db/migrate/044_create_user_roles.rb index 10ec3ee7b..0039859bf 100644 --- a/db/migrate/044_create_user_roles.rb +++ b/db/migrate/044_create_user_roles.rb @@ -1,31 +1,40 @@ -require 'lib/migrate' +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