Reputation: 61
How to set default boolean value in 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 output:
Unhandled rejection SequelizeDatabaseError: Incorrect integer value: 'true' for column 'flag' at row 1
mysql log:
INSERT INTO `foos` (`id`,`name`,`flag`,`createdAt`,`updatedAt`) VALUES (DEFAULT,'name','true','2019-06-27 22:41:25','2019-06-27 22:41:25')
Boolean true
was converted to string 'true
' automatically by sequelize
Environment:
Upvotes: 6
Views: 24643
Reputation: 11
You can do it like
sequelize.define('User', { isDeleted: { type: DataTypes.BOOLEAN, defaultValue: false } });
Note that if you are using SQL then SQL will treat BOOLEAN as a TINYINT
For more clarificationollow this link
Upvotes: 0
Reputation: 25
Convert From This 👇
var Foo = sequelize.define('foo', {
name: Sequelize.STRING,
flag: { type: Sequelize.BOOLEAN, allowNull: false, defaultValue: true}
})
To This 👇:
var Foo = sequelize.define('foo', {
name:{
type: Sequelize.BOOLEAN,
allowNull: false,
defaultValue: true
}
});
Upvotes: -5
Reputation: 4819
Most databases define booleans as bits, sequelize-auto defines boolean default values as '0' and '1' when it generates a sequelize model from an existing database table.
So instead of true or false use '1' or '0'.
Upvotes: 8