2015-03-03 14 views
15

पर होने वाले अनेक कॉलम जोड़े मैं एक मौजूदा टेबल में एक स्तंभ जोड़ने के बारे में पता है। अब मुझे मौजूदा टेबल में कई कॉलम जोड़ना है। क्या इसके लिए कोई छोटा रास्ता है:रेल 4: मौजूदा तालिका

add_col1_col2_col3_col4_.._coln_to_tables col1:integer col2:integer etc... 

क्या मुझे उपरोक्त सभी अतिरिक्त कॉलम के लिए उपर्युक्त करना है?

उत्तर

31
नहीं

कोई आवश्यक। आप

मान लिया जाये कि TableName उपयोगकर्ता

rails g migration AddColumnsToUser col1:integer col2:integer .. etc. 
3

बस प्रवास बना सकते हैं और इन स्तंभों अर्थात उत्पन्न .:

class ChangeTables < ActiveRecord::Migration 
    def change 
    change_table :tables do |t| 
     100.times do |i| 
     t.integer :"column_#{i}" 
     end 
    end 
    end 
end 
2

इस माइग्रेशन फ़ाइल एक पाश में किया जा सकता है कर सकते हैं। लेकिन क्या आप वास्तव में ऐसा करना चाहते हैं? यह सब कुछ पकड़ने के लिए इतना भारी मॉडल बनाने के लिए सही नहीं लग रहा है।

13

यहाँ जो सभी आदेशों आप अपने डेटाबेस में हेरफेर करने के लिए उपयोग कर सकते सूचीबद्ध करता ActiveRecord:Migrations पर एक अच्छा संसाधन है। एक ही प्रकार के शाब्दिक 100 कॉलम होने, तुम क्या Maxd पता चलता करना चाहता था, तो

def change 
    add_column :table, :new_column, :type 
    # add as many columns as you need 
end 

:

rails g migration AddMoreColumnsToModel

तो माइग्रेशन फ़ाइल को खोलने और रख: आप भी इस तरह से काम कर सकते हैं ऑटो-निर्माण, उसका कोड एक अच्छा विचार है।

0

ऊपर उत्तर देने के लिए लेकिन उद्देश्य आशा को समझने के लिए नीचे दिए गए नामकरण सम्मेलन अच्छा है के लिए इसी तरह। मौजूदा टेबल के नीचे अधिक columns जोड़ने के लिए

rails g model ModelName col_name1:string col_name2:integer col_name3:text ... 

आदेश:

rails g migration add_first_column_and_second_column_to_model first_column:string second_column:string 
0

आदेश columns साथ new model और table बनाने के लिए

rails g migration AddColumnToModelName col_name4:string col_name5:integer ... 

पिछले, आदेश द्वारा चलाए जा migration:

rake db:migrate 
संबंधित मुद्दे