我正在做一个小组项目,测试我们使用 Sequelize 与普通 ORM 生成的后端项目。我们在 MySQL 数据库中的两个模型是类别表。这些不会动态创建、更新或销毁,但需要在程序运行时存在。我所在的类(class)没有涵盖实例或迁移。这是迄今为止的模型..
module.exports = function(sequelize, DataTypes){
var maincategories = sequelize.define("maincategories", {
maincategories_id: {
//make primary key
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true,
autoIncrement:true
},
maincategories_name: {
type: DataTypes.STRING,
allowNull: false
}
},
{
classMethods: {
associate: function(models){
maincategories.hasMany(models.posts),
maincategories.hasMany(models.subcategories)
}
}
});
// maincategories.create({ maincategories_name: 'For Sale'}).then(function(insertedCategory){
// console.log(insertedCategory.dataValues);
// });
maincategories.create({ maincategories_name: 'Housing'})
maincategories.create({ maincategories_name: 'Personals'});
return maincategories;
// maincategories.hasMany(posts);
// maincategories.hasMany(subcategories);
};
如何让 Category 表在 node.js 应用程序启动时或之前添加这些值?此外,代码是否会驻留在模型、api 路由或其他地方所需的单独文件中?如您所见,我尝试执行持久化实例,但这些都不起作用。它会说明我在 Node CLI 中创建了这些项目,但在实际数据库中没有显示任何内容。
谢谢你。
最佳答案
您需要 maincategories.sync() 以便 sequelize 将定义的模型同步到您的数据库。
http://docs.sequelizejs.com/en/v3/api/sequelize/#syncoptions-promise
关于node.js - 将静态值创建到 Sequelize 模型中(没有迁移经验),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43054796/