Добавление индекса: уникально для столбца в ruby на рельсах посредством генерации миграции
Я знаю, что могу коснуться миграции и добавить
add_index :table_name, :column_name, :unique => true
Но как правильно выполнить команду перенаправления рельсов?
rails g migration add_index_to_column_name :column_name, :unique => true
Правильно ли это?
В моем специальном примере у меня есть таблица клиентов
t.integer :customerID
t.string :surname
t.string :first_name
t.string :phone
a Я хочу, чтобы уникальный идентификатор пользователя был уникальным. Пробовал
rails g migration AddIndexToCustomers :customerID, :unique => true
Но если я посмотрю на мой файл миграции после этого, он не выглядит правильно:
def change
add_column :customers, :, :customerID,
add_column :customers, :, :unique
add_column :customers, :=, :string
end
Любая идея или предложение?
Ответы
Ответ 1
Начиная с Rails 3.2 вы можете использовать:
rails g migration add_index_to_table_name column_name:uniq
пример из http://guides.rubyonrails.org/3_2_release_notes.html
rails g scaffold Post title:string:index author:uniq price:decimal{7,2}
upd Извините. Тип по умолчанию, если вы его не передадите, будет строкой. Вы можете передать тип самостоятельно.
column_name:type:uniq
Таким образом, ваш пример должен выглядеть так:
rails g migration add_index_to_customers customerID:integer:uniq