如何在sequelize中设置默认布尔值?
var Foo = sequelize.define('foo', {
name: Sequelize.STRING,
flag: { type: Sequelize.BOOLEAN, allowNull: false, defaultValue: true}
})
Foo.sync().then(() => {
Foo.create({name: "name"})
})
nodejs输出:
Unhandled rejection SequelizeDatabaseError: Incorrect integer value: 'true' for column 'flag' at row 1
mysql日志:
INSERT INTO `foos` (`id`,`name`,`flag`,`createdAt`,`updatedAt`) VALUES (DEFAULT,'name','true','2019-06-27 22:41:25','2019-06-27 22:41:25')
布尔值true
通过续集自动转换为字符串'true
'
环境:
答案 0 :(得分:0)
大多数数据库将布尔值定义为位,当sequelize-auto从现有数据库表生成序列模型时,sequelize-auto将布尔默认值定义为'0'和'1'。
因此,请使用“ 1”或“ 0”代替真或假。
答案 1 :(得分:-1)
从此转换?
var Foo = sequelize.define('foo', {
name: Sequelize.STRING,
flag: { type: Sequelize.BOOLEAN, allowNull: false, defaultValue: true}
})
到这个?:
var Foo = sequelize.define('foo', {
name:{
type: Sequelize.BOOLEAN,
allowNull: false,
defaultValue: true
}
});