Hiện tại không có tùy chọn để tạo mô hình với các thuộc tính chi tiết. Bạn có thể kiểm tra mã chịu trách nhiệm tại đây. Nó là mã khá rõ ràng. Dễ hiểu.
Tôi thường chỉ tạo nó với tên và không có trường, sau đó sao chép, dán mô hình của tôi vào tệp đã tạo.
Đây là mô hình.
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 });
Tôi chạy sequelize-cli model:generate --name MyModel
và sao chép, dán tất cả đối tượng tham số init trực tiếp bên trong tệp được tạo. Như thế này:
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]
}
}
}
);
Tất nhiên, chúng tôi không cần xác thực ở đây và chúng tôi cũng cần một số trường bổ sung như Id và khóa ngoại nếu có một đến nhiều liên kết. Đừng quên thêm updatedAt và createAt nếu bạn cho phép phần tiếp theo thêm nó vào phiên bản mô hình của bạn.
Vì vậy, hãy xóa xác thực và thêm những người khác.
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'
}
}
);
Đó là cách tôi quản lý để tạo di chuyển từ các mô hình của mình. Thật không may, cli phần tiếp theo không có bất kỳ tùy chọn chi tiết nào cho lệnh tạo. Nhưng vui lòng thêm một số! Kéo nó từ github và làm việc trên nó. Rất vui nếu có. Bạn cũng có thể tự động hóa quy trình được mô tả này và thêm nó dưới dạng một lệnh khác để tiếp theo cli.