Search code examples
javascriptdatabasepostgresqlsequelize.js

How to .update() value to NULL in sequelize


I'm writing my service to update a row using sequelize for PostGres. When I try out my query using a PSequel it works fine:

UPDATE "test_table" SET "test_col"=NULL WHERE "id"= '2'

But using sequelize it throws a 500 error:

db.TestTable.update({ testCol: NULL }, { where: { id: id } })
  .then((count) => {
    if (count) {
      return count;
    }
  });

My model does allowNull which I believe is what allows null values to be the default as well as set:

testCol: {
  type: DataTypes.INTEGER,
  allowNull: true,
  defaultValue: null,
  field: 'test_col'
},

Any other value but NULL works as expected. Is there a different method for setting null values?


Solution

  • From the looks of it, I think your issue is that you are using SQL's syntax for a null value ('NULL') where you should be using JS syntax ('null').

    db.TestTable.update({ testCol: null }, { where: { id: id } })
      .then((count) => {
        if (count) {
          return count;
        }
      });
    

    should work.