पर मॉडल स्कीमा बदलने हम ORM sequelize.js उपयोग कर रहे हैं और इस तरह के रूप में एक मॉडल को परिभाषित किया है:Sequelize: उत्पादन
module.exports = function(sequelize, DataTypes) {
var Source = sequelize.define('Source', {
name: {
type: DataTypes.STRING,
allowNull: false,
unique: true
}
}, {
paranoid: true
});
return Source;
};
यह उत्पादन के लिए तैनात किया और डेटाबेस sequelize.sync
उपयोग करने के लिए सिंक किए है।
module.exports = function(sequelize, DataTypes) {
var Source = sequelize.define('Source', {
name: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
location: {
type: DataTypes.STRING
}
}, {
paranoid: true
});
return Source;
};
हालांकि, जब उत्पादन sequelize.sync
करने की तैनाती इस नए पैरामीटर नहीं जोड़ता है: अगला कदम है, हम एक पैरामीटर जोड़ते हैं। इसका कारण यह है sync
एक करता है:
CREATE TABLE IF NOT EXISTS
और वास्तव में स्कीमा को अपडेट नहीं करता है, तो तालिका मौजूद है। यह noted in their documentation है।
एकमात्र विकल्प { force: true }
पर लगता है, हालांकि यह उत्पादन डेटाबेस के लिए ठीक नहीं है।
क्या किसी को पता है कि परिवर्तन आवश्यक होने पर स्कीमा को सही तरीके से कैसे अपडेट किया जाए?
आपने मेरा दिन बचाया! –
मेरे पास इसके आसपास एक सवाल है। मैं अनुक्रमित मॉडल का उपयोग कर एक नया मॉडल और इसकी संबंधित माइग्रेशन स्क्रिप्ट बनाने के लिए सीक्वेलिज़-क्ली का उपयोग कर सकता हूं: जो मॉडल और माइग्रेशन स्क्रिप्ट बनाता है, क्या कोई नया तरीका है जो नए कॉलम या बाधाओं को जोड़ते समय किया जा सकता है। क्या हमें इन कार्यों के लिए माइग्रेशन स्क्रिप्ट मैन्युअल रूप से लिखना है या माइग्रेशन स्क्रिप्ट को स्वत: उत्पन्न करने का कोई तरीका है। –
जो अनुक्रमित करने में समस्या है हमें मैन्युअल रूप से माइग्र स्क्रिप्ट्स गीज़ लिखना है! –