Sha256: 25f45d8d047aedc66ed1c9e46c9a1342ae1e18cc19d918c7371ea9cf78ef8eb7

Contents?: true

Size: 1.62 KB

Versions: 26

Compression:

Stored size: 1.62 KB

Contents

class AddColumnsToUser < ActiveRecord::Migration
  def up
    if table_exists?("users")
      unless column_exists?("users", "username")
        add_column "users", "username", :string, default: "", null: false
      end
      unless column_exists?("users", "first_name")
        add_column "users", "first_name", :string
      end
      unless column_exists?("users", "middle_name")
        add_column "users", "middle_name", :string
      end
      unless column_exists?("users", "nickname")
        add_column "users", "nickname", :string
      end
      unless column_exists?("users", "last_name")
        add_column "users", "last_name", :string
      end
      unless column_exists?("users", "display_name")
        add_column "users", "display_name", :string
      end
    
      # If the email index exists and is set such that email must be unique (which is the initial
      # setting typically set by Devise(?)), remove and we'll re-add it as non-unique below.
      if index_exists?("users", ["email"])
        if index_exists?("users", ["email"], unique: true)
          remove_index "users", ["email"]
        end
      end
      
      # Either the email index didn't exist when we started or, more likely, we removed above
      # because it existed but required email to be unique.
      unless index_exists?("users", ["email"])
        add_index "users", ["email"], name: "index_users_on_email"
      end
      
      unless index_exists?("users", ["username"])
        add_index "users", ["username"], name: "index_users_on_username", unique: true
      end
    end
  end

  def down
    raise ActiveRecord::IrreversibleMigration
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
ddr-models-1.13.2 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.13.1 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.13.0 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.11.8 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.12.3 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.11.7 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.12.2 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.11.6 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.12.1 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.11.5 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.12.0 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.11.4 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.11.3 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.11.2 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.11.1 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.11.0 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.10.0 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.9.0 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.8.1 db/migrate/20141107124012_add_columns_to_user.rb
ddr-models-1.8.0 db/migrate/20141107124012_add_columns_to_user.rb