আপনার যদি কোনও তৈরি করার দরকার হয় 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