चूंकि आपको उत्पादन में 'माइग्रेट:अल्टर' चलाने की अनुमति नहीं है (भले ही आप कोशिश करें), एक विकल्प उन इंडेक्स को बूटस्ट्रैप फ़ाइल ('config/bootstrap.js') में बनाना है।
कल्पना कीजिए कि आपके पास इस तरह का एक उपयोगकर्ता मॉडल है:
var User = {
attributes: {
email : { type: 'string', unique: true, required: true },
username : { type: 'string', unique: true, required: true },
pin: { type: 'string'}
}
};
module.exports = User;
फिर आप बूटस्ट्रैप फ़ाइल में इस तरह से लापता इंडेक्स को मैन्युअल रूप से बना सकते हैं:
module.exports.bootstrap = async function(done) {
console.log("Loading bootstrap...")
if (process.env.NODE_ENV === 'test') {
}
if (process.env.NODE_ENV === 'production') {
console.log("CREATING DATABASE INDEX BY HAND")
// USER MODEL
var db = User.getDatastore().manager;
await db.collection(User.tableName).createIndex( { email: 1 }, {unique: true} );
await db.collection(User.tableName).createIndex( { username: 1 }, {unique: true} );
// PANDA MODEL
// db = Panda.getDatastore().manager;
// await db.collection(Panda.tableName).createIndex( { name: 1 }, {unique: true} );
}
// await initializeDatabase() // custom DB initialization...
return done();
};
इंडेक्स केवल एक बार बनाया जाता है, बाद के रन उन इंडेक्स को फिर से नहीं बनाएंगे। सुनिश्चित इंडेक्स इंडेक्स फ़ंक्शन बनाने के लिए उपनाम था और इसे बहिष्कृत कर दिया गया है।
संदर्भ: