小编bac*_*942的帖子

即使 paranoid 设置为 true,Sequelize.js 仍然会删除表行

我无法让 Sequelize.js 软删除表中的行。我使用 Sequelize cli 来完成所有迁移,并且没有使用同步功能在启动时重新同步数据库。我的迁移和模型中有时间戳字段,甚至有deletedAt字段(模型也有偏执:true),无论如何它仍然删除该行而不是向deletedAt字段添加时间戳。我注意到,当进行任何查询时,它不会像我在一些教程中看到的那样在查询中添加deletedAt = NULL。我正在使用 Sequelize.js v3.29.0。

模型文件:

'use strict';
module.exports = function(sequelize, DataTypes) {
  var Collection = sequelize.define('Collection', {
    userId: {
      type: DataTypes.INTEGER,
      allowNull: false,
      validate: {
          isInt: true
      }
    },
    name: {
      type: DataTypes.STRING,
      allowNull: false
    },
    description: DataTypes.TEXT,
    createdAt: {
        allowNull: false,
        type: DataTypes.DATE
    },
    updatedAt: {
        allowNull: false,
        type: DataTypes.DATE
    },
    deletedAt: {
        type: DataTypes.DATE
    }
  }, {
    classMethods: {
      associate: function(models) {
        Collection.belongsTo(models.User, { foreignKey: 'userId' })
      }
    }
  }, {
    timestamps: …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js express sequelize.js sequelize-cli

4
推荐指数
1
解决办法
5785
查看次数