क्या एकल रेल माइग्रेशन फ़ाइल में कई तालिकाओं को बदलना बुरा है?


11

मैंने निम्नलिखित कोड के साथ एक माइग्रेशन फ़ाइल लिखी है:

class AddScheduleIdToPlayers < ActiveRecord::Migration
  def change
        add_column :players, :schedule_id, :integer
        add_column :schedules, :coach_id, :integer
  end
end

क्या यह दो फ़ॉर्मेट फ़ाइलों को नहीं बनाने के लिए खराब है, प्रत्येक परिवर्तन के लिए एक है, या यह ठीक है?


यह मेरे उसी प्रश्न की तरह है ... लेकिन हम अपने सभी मॉडलों में एक "अपडेट किया हुआ" फ़ील्ड जोड़ना चाहते हैं। क्या हम सिर्फ एक ही माइग्रेशन AddUpdatedByToMostObjects में कर सकते हैं?
एलियन लाइफ फॉर्म 19

जवाबों:


10

आप संबंधित परिवर्तनों को एक साथ रखना चाहते हैं। उदाहरण के लिए, यदि आप द्विदिश संबंध को लागू करते हैं और एआर संबंधों को पूरा करने के लिए कॉलम / तालिकाओं को जोड़ते हैं जिन्हें आप एक प्रवास में रखना चाहते हैं।

यदि स्कीमा में परिवर्तन एक-दूसरे से संबंधित नहीं हैं (उदाहरण के लिए, अलग-अलग विशेषताओं के भाग), तो उन्हें अलग-अलग माइग्रेशन में रखना बेहतर है।

जब मुझे यकीन नहीं होता तो मैं एक मानसिक प्रयोग करता हूं। मैं सबसे छोटे संभव टुकड़ों के लिए माइग्रेशन को तोड़ने की कोशिश करता हूं और फिर जांचता हूं कि क्या मेरी विशेषता अभी भी काम करती है अगर मैं टुकड़ों में से केवल एक को नीचे ले जाता हूं। यदि यह है कि टुकड़ा संभावना है कि इस प्रवास से संबंधित नहीं है।

तुम्हारा मुझे ऐसा लग रहा है जैसे इसे दो प्रवासों में विभाजित किया जा सकता है। ऐसा लगता है कि आप यहाँ दो विशेषताएं हैं। एक खिलाड़ियों के लिए शेड्यूल जोड़ने के बारे में है और दूसरा कोचों को शेड्यूल में जोड़ने के लिए है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.