Sequelize:销毁/删除表中的所有记录
Posted
技术标签:
【中文标题】Sequelize:销毁/删除表中的所有记录【英文标题】:Sequelize: Destroy/Delete all records in the table 【发布时间】:2017-04-18 12:51:44 【问题描述】:我正在使用 Mocha 进行单元测试。
测试开始时,我想删除表中以前的所有记录。
我尝试过的:
db.User.destroy( force: true ).then(() =>
).then(() => done());
db.User.destroy(
where: undefined,
truncate: false
).then(() =>
return
).then(() => done());
db.User.destroy().then(() =>
return db.User.bulkCreate(users)
).then(() => done());
我不断收到以下错误:
Error: Missing where or truncate attribute in the options parameter of model.destroy.
如何删除/销毁表中的所有记录?
【问题讨论】:
【参考方案1】:你可以试试
db.User.destroy(
where: ,
truncate: true
)
【讨论】:
@Coxer 不是。您将收到UnhandledPromiseRejectionWarning: Error: Missing where or truncate attribute in the options parameter of model.destroy
错误
你不需要 where 选项。 db.User.destroy( truncate: true )
没关系
如果您有外键约束,truncate: true
可能不起作用。在这种情况下,您可以简单地删除该子句。
here 是更安全的解决方案。
我只这样做了 users.destroy( where: )
并且它有效【参考方案2】:
我能够用代码解决这个问题:
table.sync( force: true );
这是一种比maheshiv's answer 中提出的更安全的解决方案。
【讨论】:
如果您想重置整个表并且 ids 将再次从 1 开始计数,这是一个更好的解决方案,我发现这个答案是测试目的最安全的答案 感谢您在开发 b2c 服务时对我有很大帮助【参考方案3】:它对我有用:db.User.truncate()
【讨论】:
以上是关于Sequelize:销毁/删除表中的所有记录的主要内容,如果未能解决你的问题,请参考以下文章
使用 Sequelize 包含子句查询在另一个表中没有条目的记录