如何在sequelize中设置默认布尔值

ber*_*n75 5 node.js sequelize.js

如何在sequelize中设置默认布尔值?

var Foo = sequelize.define('foo', {
  name: Sequelize.STRING,
  flag: { type: Sequelize.BOOLEAN, allowNull: false, defaultValue: true}
})
Foo.sync().then(() => {
  Foo.create({name: "name"})
})
Run Code Online (Sandbox Code Playgroud)

节点输出:

Unhandled rejection SequelizeDatabaseError: Incorrect integer value: 'true' for column 'flag' at row 1
Run Code Online (Sandbox Code Playgroud)

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')
Run Code Online (Sandbox Code Playgroud)

布尔值被sequelize自动true转换为字符串' 'true

环境:

  1. mysql版本:5.7.9
  2. 续集版本:5.8.11
  3. 节点版本:v8.9.1
  4. 操作系统:win10

sea*_*pip 7

大多数数据库将布尔值定义为位,sequelize-auto 在从现有数据库表生成sequelize 模型时将布尔值默认值定义为“0”和“1”。

因此,不要使用“1”或“0”来判断真或假。