2015-02-10 8 views
6

मैं संस्थाओं को बनाने के लिए माइग्रेशन का उपयोग कर रहा हूं। स्वाभाविक रूप से, कुछ के बीच संबंध हैं। अब तक, sync(true) का उपयोग करके, मुझे डेटाबेस स्तर पर मेरे लिए संबंधों को लागू करने के लिए Sequelize के लाभ का आनंद लिया।Sequelize माइग्रेशन में assocations कैसे बनाएँ?

माइग्रेशन में नए संबंध कैसे व्यक्त करूं?

  1. एक से कई: क्या मुझे विदेशी कुंजी कॉलम का ख्याल रखना चाहिए?
  2. कई से कई: क्या मुझे इंटरमीडिएट टेबल बनाना चाहिए और प्रत्येक इकाई की तालिका पर विदेशी कुंजी सेट करना चाहिए?

या: क्या मुझे माइग्रेशन चलाया जाना चाहिए और फिर sync(false)? उन संबंधों के बारे में क्या जो अब प्रासंगिक नहीं हैं?

उत्तर

3

जब मैं माइग्रेशन का उपयोग करता हूं, तो मैं सिंक सेट करता हूं: झूठी।

और संघों स्थापित करने के लिए, अपने मॉडल इतना की तरह समाप्त होता है:

User.js:

module.exports = function(sequelize, DataTypes) { 
    var User = sequelize.define("User", { 
     "fname": { 
      "type": DataTypes.STRING, 
      "unique": false, 
      "allowNull": false 
     }, 
     "lname": { 
      "type": DataTypes.STRING, 
      "allowNull": false 
     } 
    }, { 
     "tableName": "Users", 
     "classMethods": { 
      "associate": function (models) { 
       Locale.hasMany(models.Permissions); 
      } 
     } 
    }); 

    return User; 
}; 

यह अभी भी तालिका बनाने के अगर यह मौजूद नहीं है। हालांकि मैं अनुशंसा करता हूं कि एक टेबल बनाना अभी भी माइग्रेशन का हिस्सा है। कृपया ध्यान दें कि आईडी को शामिल करने के लिए एक टेबल बनाने के लिए आपके माइग्रेशन में, अपडेट किया गया एटी, बनाया गया और अनुमति आईडी कॉलम (ऊपर दिए गए उदाहरण के लिए)

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