Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding index :unique to a column in ruby on rails via generate migration

Tags:

I know that i can touch a migration and add

add_index :table_name, :column_name, :unique => true 

But how is the right rails migration command to generate this?

rails g migration add_index_to_column_name :column_name, :unique => true 

Is that right?

In my special example I have a table customers

  t.integer :customerID   t.string :surname   t.string :first_name   t.string :phone 

an i want to set the customerID to unique. Tried

rails g migration AddIndexToCustomers :customerID, :unique => true  

But if i look to my migration file after this, it dont look right see this:

def change     add_column :customers, :, :customerID,     add_column :customers, :, :unique     add_column :customers, :=, :string   end 

Any idea or suggestion?

like image 306
Denny Mueller Avatar asked May 08 '13 17:05

Denny Mueller


1 Answers

Starting from Rails 3.2 you able to use:

 rails g migration add_index_to_table_name column_name:uniq 

example from http://guides.rubyonrails.org/3_2_release_notes.html

 rails g scaffold Post title:string:index author:uniq price:decimal{7,2} 

upd I'm sorry. The default type if you don't pass it would be string. You can pass type by yourself.

column_name:type:uniq 

Thus your example should looks like:

rails g migration add_index_to_customers customerID:integer:uniq 
like image 125
ck3g Avatar answered Sep 28 '22 12:09

ck3g