]> git.openstreetmap.org Git - rails.git/blobdiff - db/migrate/044_create_user_roles.rb
Modernise migrations
[rails.git] / db / migrate / 044_create_user_roles.rb
index 10ec3ee7bf86ab236e8442be3103ffbeda72d084..bae5a3cadb62254a9241b1f16f3e3544f141705d 100644 (file)
@@ -1,31 +1,34 @@
-require 'lib/migrate'
+require "migrate"
 
 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