在我的 restaurant_images.js模型中
'use strict';
module.exports = (sequelize, DataTypes) => {
const restaurant_images = sequelize.define('restaurant_images', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
image_path: {
type: DataTypes.STRING,
allowNull: false
},
restaurant_id: {
type: DataTypes.INTEGER
}
}, {});
restaurant_images.associate = function (models) {
restaurant_images.belongsTo(models.restaurants, {
foreignKey: 'restaurant_id'
})
};
return restaurant_images;
};
在我的控制器
中const setImages = await db.restaurant_images.bulkCreate(images);
图像是一个对象数组,每个对象都有image_path
和restaurant_id
这会生成这样的查询。
`restaurant_images` (`id`,`image_path`,`restaurant_id`,`createdAt`,`updatedAt`) VALUES (NULL,'https://xxx.s3.us-east-2.amazonaws.com/',31,'2018-09-25 05:32:06','2018-09-25 05:32:06')
此处应将default
传递给id列。但是它将id列传递给null
。
我尝试记录
的输出const setImages = await db.restaurant_images.bulkCreate(images);
它给了我
SET IMAGES [ restaurant_images {
dataValues:
{ id: 146,
image_path: 'https://igateeatme.s3.us-east-2.amazonaws.com/hkjkjkj//Screenshot%20%284%29.png',
restaurant_id: 36,
createdAt: 2018-09-25T08:27:22.803Z,
updatedAt: 2018-09-25T08:27:22.803Z },
它分配一个ID。但是唯一的问题是它不会插入该ID。
它不会在restaurant_images
表中插入任何内容。
为什么会这样?
任何帮助!
感谢进阶!
答案 0 :(得分:0)
我认为,该表不是通过Sequlize sync创建的,您可能 是自己创建的,创建时忘了做主键 表格,
如果是这种情况,则您的模型定义要影响您的表 除非您运行
model.sync()
,否则它将变为相对 根据您的模型定义更改数据库。除非您运行
,否则模型定义将一直影响您的实际数据库表model.sync()
您可以删除,因为如果运行model.sync()
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
}