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

2024-01-11

我无法让 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: true,
    paranoid: true
  });
  return Collection;
};

迁移文件:

'use strict';
module.exports = {
  up: function(queryInterface, Sequelize) {
    return queryInterface.createTable('Collections', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      userId: {
        allowNull: false,
        type: Sequelize.INTEGER
      },
      name: {
        allowNull: false,
        type: Sequelize.STRING
      },
      description: {
        type: Sequelize.TEXT
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      deletedAt: {
          type: Sequelize.DATE
      }
    });
  },
  down: function(queryInterface, Sequelize) {
    return queryInterface.dropTable('Collections');
  }
};

这是我用来销毁集合对象的控制器中的代码。

Collection.findOne({
        where: {
            id: collectionId,
            userId: user.id
        }
    }).then(function(collection){
        if (collection !== null) {
            collection.destroy().then(function(){
                res.redirect('/collection');
            }).catch(function(error){
                res.redirect('/collection/'+collectionId);
            });
        }
    });

确保 paranoid 是在第二个对象参数中定义的属性。

..., {
classMethods: {
    associate: function(models) {
        Collection.belongsTo(models.User,{ foreignKey: 'userId' })
      }
  },
    timestamps: true,
    paranoid: true
}

您已将 paranoid 定义为 3.Param,这就是问题所在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

即使 paranoid 设置为 true,Sequelize.js 仍然会删除表行 的相关文章

  • 在ubuntu 12.04上安装nodejs和npm后找不到.npmrc文件

    我刚刚按照教程在我的 ubuntu 12 04 上安装了 nodejs 和 npm https gist github com dwayne 2983873 https gist github com dwayne 2983873 现在安装
  • 纤维/未来实际上有什么作用?

    下面这行代码的作用是什么 Npm require fibers future 我在网上查找示例 发现了一些这样的示例 Future Npm require fibers future var accessToken new Future 什
  • API 使用令牌向 odoo 进行身份验证

    我想使用令牌从 Express 应用程序向 Odoo 进行身份验证 我在用odoo xmlrpc https www npmjs com package odoo xmlrpc连接 Odoo 的节点模块 我的快递应用程序 Odoo 要求 A
  • Node.js 升级在 Windows 中仍然显示旧版本

    我已使用 msi 安装程序下载并安装了新版本的 nodejs 4 1 2 之后我跑了node v 但它仍然显示旧版本 0 12 2 我尝试重新启动Windows 甚至卸载nodejs并重新安装它 但仍然显示相同的内容 为什么会发生这种情况
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • TimescaleDB 查询选择列值较上一行发生更改的行

    最近刚刚开始使用 TimescaleDB 和 Postgres 来处理大多数数据请求 然而 我遇到了一个问题 即我对时间序列数据的请求效率极低 它是一个可以是任意时间长度 具有特定整数值的数据系列 大多数时候 除非出现异常 否则该值将是相同
  • PostgreSQL 错误 42501:架构权限被拒绝

    我正在 ASP NET 中构建一个用户注册系统 使用 PostgreSQL 数据库来维护用户信息 作为注册过程的一部分 用户会收到一条确认消息 他们必须单击其中的链接来验证其电子邮件地址 然后 他们将进入一个可以创建密码的页面 一旦用户提供
  • 如何使用 Create-React-App 节点服务器定义 MIME 类型?

    我正在尝试处理这个 WebAssembly 注释 注意 要运行instantiateStreaming and compileStreaming 您需要您的网络服务器来提供 wasm 文件application wasmMIME 类型 ht
  • 如何在Electron WebView中连接到代理?

    因为我可以通过连接到免费代理服务器 或付费 目前用作电子 JS 解决方案作为桌面应用程序 代理列表服务器示例 http proxylist hidemyass com http proxylist hidemyass com 您可以使用 s
  • libxmljs 的替代品 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 目标 使用 Node js 访问网页 使用 xpath 语法操作 DOM 并打印新的 DOM libxm
  • 如何在Windows服务器上将node.js文件作为后台进程运行?

    我正在创建一个 node js 项目并将其上传到我的 Windows 服务器 以为移动应用程序提供 API 服务 当我打开命令提示符并键入 node app js 它运行正常 但是当我关闭命令提示符时 我的 Node js 服务器停止运行
  • 节点无法抓取某些页面

    我不知道这是否与冷融合页面有关 但我无法刮掉这些 cfm pages 在目录中的命令行中request run node gt var request require request node gt var url http linguis
  • Angular-cli AOT 构建失败,并显示“致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足”

    我正在尝试使用 AOT 构建我的 angular cli 项目 ng build aot 但它因错误而失败 致命错误 CALL AND RETRY LAST 分配失败 JavaScript 堆内存不足 如果我用 prod flag 任何想法
  • firebase 和 firebase-admin npm 模块有什么区别?

    我想使用 Firebase 身份验证 数据库和存储 构建 Node js Web 应用程序 但我对应该使用哪个模块感到困惑 firebase or firebase 管理员 或两者 管理 SDK 运行您的代码管理权限 https fireb
  • Cosmos DB Mongo API 如何管理“请求率很大”情况

    我有以下代码 async function bulkInsert db collectionName documents try const cosmosResults await db collection collectionName
  • NodeJS hmac 摘要问题与重音

    我正在对以下代码与 Ruby PHP 和 NodeJS 进行并排比较 使用 NodeJS 得到错误的响应crypto module PHP hash hmac sha256 text Ruby OpenSSL HMAC hexdigest
  • Django 独特的不工作

    我在从查询中过滤掉重复项时遇到问题 我正在使用 Django 1 4 和 Postgres 8 4 13 我在我的模型对象上使用这个查询 它是一个 jquery 自动完成 term request GET get term field re
  • 将 SQL Server 2008 DB 迁移到 Postgres [重复]

    这个问题在这里已经有答案了 我想将 SQL Server 2008 数据库迁移到 Postgres 有没有一种无痛的方法来做到这一点 是否有任何工具可以扫描架构和存储过程以标记兼容性问题 无痛http dbconvert com conve
  • 下载中带有文件名的 NodeJS sendFile

    我尝试使用以下代码将文件发送给客户端 router get get myfile function req res next res sendFile other file name dat 它工作正常 但当用户从以下网址下载此文件时我需要
  • Nodejs Express中间件函数返回值

    我正在使用 NodeJS 和 Express 我有以下路线 中间件功能是Mobile 如果我不使用 return next 在 isMobile 函数中 应用程序会卡住 因为 NodeJS 不会移至下一个函数 但我需要 isMobile 函

随机推荐

  • Sql Server 2005 与 Windows 10 不兼容

    当我升级到 Windows 10 时 SQL Server 2005 可以工作 现在它无法工作 据 Microsoft 称 我读到它与 Windows 8 不兼容 对我来说 Windows 10 只是 Windows 8 的成熟版本 有什么
  • Scala Playframework 发送文件

    我有一串数据 是从数据库中的数据中获取的 我想将其发送给用户 但不创建文件的本地副本 例如 Ok MyString as file csv 但它不起作用 我该怎么做 您可以通过使用来做到这一点chunked与Enumerator 我也用过w
  • 触发 PHP 处理

    I ask a 类似的问题 https stackoverflow com q 5964407 2246380昨天 但这一切都变得令人困惑 我想我应该重新开始并尝试更好地解释它 我即将设计一个拍卖网站 与 eBay 非常相似 物品从 24
  • 表单验证和表单助手

    我仍然在 Play 2 0 中的表单验证和表单助手方面遇到困难 我有一个与 Twitter Bootstrap 一起使用的登录屏幕 所以我的登录表单如下所示 helper form routes Application authentica
  • 在 GitHub Actions 工作流程中缓存 APT 包

    我对我的 C 项目使用以下 Github Actions 工作流程 工作流程在约 40 秒内完成 但其中一半以上的时间都花在安装valgrind包及其依赖项 我相信缓存可以帮助我加快工作流程 我不介意多等几秒钟 但这似乎是对 GitHub
  • 将重音符号转换为 UTF-8 字符

    我有带有各种变音符号的 Rnw Latex 文档 Kri s hna and St o ne etc 当我编织文档时 它们正确翻译为Kri shna and St one etc R 或任何 R 包中是否有命令可以为我执行此转换 例如 co
  • Rails 5.2 Active Storage 清除/删除附件不会删除 Blob 或附件记录

    我正在使用 Rails 5 2 并尝试使用 Amazon S3 设置 Active Storage 我的应用程序可以完全访问 S3 并且我可以附加avatar图像到user 但当我尝试删除头像时 遇到以下问题 gt user avatar
  • Elixir Exrm 中的参数化节点名称

    我想将 Exrm 与分布在单台机器上的 Erlang 一起使用 我需要创建多个版本 仅节点名称不同 我知道 我可以在中配置节点名称rel vm args 但它将是静态的 我可以以某种方式生成具有不同节点名称的多个版本吗 我正在研究同样的问题
  • 谷歌地图填充页面保留在标题下方

    我试图使标题 div 出现在 Google 地图上方 但让地图填充页面内容的所有其余部分 我遇到的问题是页面不断滚动 但我不希望它滚动 它滚动的量与标题高度相同 我尝试将溢出 隐藏 但这不起作用 因为虽然它不再滚动 但它也没有显示谷歌徽标和
  • 具有混合条件的 LINQ to SQL 复杂联接

    我有一个 SQL 语句 正在尝试将其转换为 LINQ to SQL 并且我已成功将其大部分转换 但遇到了一个我无法在 LINQ 中理解的语句 SQL 查询中令人头疼的部分是 SELECT FROM step INNER JOIN actio
  • 如何使用 Liquid 模板语言在布局中渲染模板?

    我正在尝试在液体布局中渲染液体模板 液体模板语言 而不是 CSS 液体布局内容 我似乎无法渲染布局部分 目前使用 assigns page name gt test layout Liquid Template parse File new
  • R Shiny Tabsets 同时处理

    我有一个RShiny应用程序 它计算不同选项卡中的多个统计数据 由于计算相当密集 我使用submitButton以防止发生反应 我的问题是现在每个计算 全部在不同的选项卡集中 都将输出写入文件夹 我想要Shiny初始化时为所有选项卡集写入输
  • 计算文件中特定字符串的出现次数

    这是我已经处理过的代码 while lineContents tempFileReader readLine null String lineByLine lineContents replaceAll System getProperty
  • 有效的成员指针可以与 NULL 指针具有相同的值吗?

    根据ABI http refspecs linux foundation org cxxabi 1 83 html member pointers 指向数据成员的指针是相对于基地址的偏移量 包含它的类对象 NULL 指针表示为 1 但是 根
  • Eclipse 有缩进指南吗?

    最近 我使用 Eclipse 来编辑我的 python 代码 但缺少缩进指南 我感觉不太好 那么如何为 Eclipse 添加自动缩进指南呢 有特定的插件吗 更重要的是 我已经尝试过EditBox 但是 你知道 在某些主题下这不是很自然 有一
  • 添加两个文本框中的值并在第三个文本框中显示总和

    我尝试将此代码从 textbox1 text 和 textbox2 text 添加到 textbox3 text private void textBox1 TextChanged object sender EventArgs e if
  • 3D 数组声明时出现错误

    可能是我第一次使用 3D 数组 我只是尝试遵循 1D 和 2D 语法来声明 3D 但编译器说类型不匹配 谁能告诉我这背后的原因吗 Integer 1D new Integer 2 4 6 5 6 Integer 2D new Integer
  • 维护跨多个表的实体的审核日志

    我们有一个实体分为 5 个不同的表 其中 3 个表中的记录是强制性的 其他两个表中的记录是可选的 基于实体的子类型 其中一张表被指定为实体主表 其他四个表中的记录由 master 中的唯一 id 作为键控 在每个表上都存在更新 删除触发器之
  • 获取不属于另一个表中某个类别的供应商

    我正在寻找一个查询 需要显示供应商表中没有类别 1 Products CategoryID 1 的产品的所有供应商 每当我运行它时 它总是会出错 Select SupplierID From Suppliers su where Suppl
  • 即使 paranoid 设置为 true,Sequelize.js 仍然会删除表行

    我无法让 Sequelize js 软删除表中的行 我使用 Sequelize cli 来完成所有迁移 并且没有使用同步功能在启动时重新同步数据库 我的迁移和模型中有时间戳字段 甚至有deletedAt字段 模型也有偏执 true 无论如何