2014-09-10 6 views
5

मैं किसी भी प्रवासन के बिना रेल कंसोल से एक तालिका कॉलम का नाम बदलना चाहता हूं।माइग्रेशन के बिना रेल कंसोल से कॉलम का नाम कैसे बदल सकता हूं?

मैं यह कैसे कर सकता हूं?

+4

आपको इसे माइग्रेशन के बिना नहीं करना चाहिए, यह सर्वोत्तम अभ्यास नहीं है और न ही रेल मार्ग। –

+0

मुझे पता है कि यह सिंक समस्या से बाहर एक बहुत ही अजीब डीबी था ... – Boti

उत्तर

4
rails dbconsole 
ALTER TABLE name RENAME column TO column 
+1

बस एक साइड नोट @ बोटी, आपका 'डीबी/स्कीमा.आरबी' इस विधि का उपयोग करके अपडेट नहीं किया जाएगा, जो आपको तैनात करते समय संभावित रूप से समस्याएं पैदा करेगा। यदि ऐसी कोई चिंता है, तो आप ऐसा करने के बाद 'रेक डीबी: स्कीमा: डंप' चला सकते हैं ताकि आपकी स्कीमा फ़ाइल वर्तमान डेटाबेस संरचना (और नामकरण) के साथ सिंक्रनाइज़ हो। –

0
  1. आप कंसोल में चलाएँ: rails g migration ChangeColName
  2. आप फ़ाइल डाटाबेस को संपादित/विस्थापित/"टाइमस्टैम्प" डीईएफ़ परिवर्तन में सम्मिलित _change_col_name.rb -

    rename_column :tablename, :old_column_name, :new_column_name -save 
    
  3. आप कंसोल में चलाने : rake db:migrate :-)

+1

मुझे यकीन नहीं है कि क्या आप "टर्मिनल" के साथ "कंसोल" को भ्रमित कर रहे हैं, लेकिन ओपी का मतलब यह था कि वास्तविक रेल कंसोल (आईआरबी इंटरफेस) में माइग्रेशन फ़ाइल लिखने/चलाने के बिना इसे कैसे किया जाए। –

15

मैंने इसे कंसोल से चलाने का विकल्प चुना:

ActiveRecord::Base.connection.rename_column :tablename, :old_column_name, :new_column_name 
+1

बेस्ट उत्तर। यह आपको रेलवे माइग्रेशन के अंदर जैसे आदेशों को निष्पादित करने की अनुमति देता है। –

संबंधित मुद्दे