Якщо вам потрібно створити, user_id
тоді було б обґрунтованим припущенням, що ви посилаєтесь на таблицю користувачів. У цьому випадку міграція повинна бути:
rails generate migration AddUserRefToProducts user:references
Ця команда генерує таку міграцію:
class AddUserRefToProducts < ActiveRecord::Migration
def change
add_reference :user, :product, index: true
end
end
Після запуску rake db:migrate
обидва user_id
стовпця та індексу будуть додані до products
таблиці.
У разі , якщо вам просто потрібно додати індекс до існуючого колонку, наприклад , name
з user
таблиці, наступний метод може бути корисним:
rails generate migration AddIndexToUsers name:string:index
створить таку міграцію:
class AddIndexToUsers < ActiveRecord::Migration
def change
add_column :users, :name, :string
add_index :users, :name
end
end
Видаліть add_column
рядок і запустіть міграцію.
У описаному випадку ви могли б видати rails generate migration AddIndexIdToTable index_id:integer:index
команду, а потім видалити add_column
рядок із створеної міграції. Але я рекомендую скасувати початкову міграцію та замість цього додати посилання:
rails generate migration RemoveUserIdFromProducts user_id:integer
rails generate migration AddUserRefToProducts user:references