Can't save NOT NULL fields with empty strings

Here is a minimal definition:

module.exports = (sequelize, DataTypes) => {
  const { Sequelize } = sequelize;
  const TableName = sequelize.define('table_name', {
    columnName: {
      type: DataTypes.STRING,
      field: 'column_name',
      defaultValue: "",
      allowNull: false,
      set(val) {
        this.setDataValue('columnName', val || "")
      },
    },
  }, {
    tableName: 'table_name',
    schema: "public",
  });

  return TableName;
};