वर्तमान में विस्तृत विशेषताओं के साथ मॉडल उत्पन्न करने का कोई विकल्प नहीं है। आप यहां जिम्मेदार कोड देख सकते हैं।ए> यह काफी स्पष्ट कोड है। समझने में आसान।
मैं आमतौर पर इसे केवल नाम और बिना किसी फ़ील्ड के उत्पन्न करता हूं और फिर अपने मॉडल को जेनरेट की गई फ़ाइल में कॉपी पेस्ट करता हूं।
यह मॉडल है।
class MyModel extends Sequelize.Model { }
MyModel.init({
name: {
type: Sequelize.DataTypes.STRING(100),
allowNull: false,
validate: {
notNull: true,
notEmpty: true,
len: [2, 100]
}
},
description: {
type: Sequelize.DataTypes.STRING(5000),
allowNull: false,
validate: {
notNull: true,
notEmpty: true,
len: [100, 5000]
}
}
}, { sequelize: sequelizeInstance });
मैं sequelize-cli model:generate --name MyModel
run चलाता हूं और सभी init पैरामीटर ऑब्जेक्ट को सीधे जेनरेट की गई फ़ाइल के अंदर कॉपी पेस्ट करें। इस तरह:
queryInterface.createTable(
'MyModel',
{
name: {
type: Sequelize.DataTypes.STRING(100),
allowNull: false,
validate: {
notNull: true,
notEmpty: true,
len: [2, 100]
}
},
description: {
type: Sequelize.DataTypes.STRING(5000),
allowNull: false,
validate: {
notNull: true,
notEmpty: true,
len: [100, 5000]
}
}
}
);
बेशक हमें यहां सत्यापन की आवश्यकता नहीं है और हमें कुछ अतिरिक्त क्षेत्रों जैसे आईडी और विदेशी कुंजी की भी आवश्यकता है यदि एक से कई एसोसिएशन हैं। अगर आप सीक्वेलाइज़ को अपने मॉडल इंस्टेंस में जोड़ने की अनुमति देते हैं, तो अपडेटेडएट और क्रिएटेडएट जोड़ना न भूलें।
इसलिए मान्य हटाएं और दूसरों को जोड़ें।
queryInterface.createTable(
'MyModel',
{
id: {
type: Sequelize.DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
type: Sequelize.DataTypes.STRING(100),
allowNull: false
},
description: {
type: Sequelize.DataTypes.STRING(5000),
allowNull: false
},
createdAt: {
type: Sequelize.DataTypes.DATE,
allowNull: false,
},
updatedAt: {
type: Sequelize.DataTypes.DATE,
allowNull: false,
},
MyOtherModelId: {
type: Sequelize.DataTypes.INTEGER,
allowNull: false,
references: {
model: 'MyOtherModel'
},
onUpdate: 'cascade',
onDelete: 'restrict'
}
}
);
इस तरह मैं अपने मॉडल से अपने माइग्रेशन बनाने का प्रबंधन करता हूं। दुर्भाग्य से सीक्वेलाइज क्ली में जनरेट कमांड के लिए कोई विस्तृत विकल्प नहीं है। लेकिन कुछ जोड़ने के लिए स्वतंत्र महसूस करें! इसे जीथब से खींचो और उस पर काम करो। होना अच्छा होगा। आप इस वर्णित प्रक्रिया को स्वचालित भी कर सकते हैं और इसे cli को सीक्वेल करने के लिए एक अन्य कमांड के रूप में जोड़ सकते हैं।