一、软删除
1、逻辑
我们先说一下删除到回收站的原理,其实就是在数据库中增加了一个字段。如果这个字段没有值,就表示这是一个正常的数据。如果这个字段有值了,就表示它被删除到回收站了。数据本身其实一直都存在,只是多了个字段表示是否在回收站中而已。
这种需求在Sequelize中,能非常轻松的实现,标准的术语叫做:软删除。详情可以看官方文档的这一章:传送门
2、实例
现在,我们以文章表为例,来实现软删除。做之前,需要先在文章表中,增加一个字段,名叫做:deletedAt,看名字就知道了,这是用来表示什么时候删除的。如果这字段有值,那就表示被删到回收站中了。
2.1、 新建迁移,增加 deletedAt 字段
sequelize migration:create --name add-deleted-at-to-article
修改迁移里的内容
async up(queryInterface, Sequelize) {
await queryInterface.addColumn('Articles', 'deletedAt', {
type: Sequelize.DATE
});
await queryInterface.addIndex(
'Articles', {
fields: ['deletedAt']
});
},
async down(queryInterface, Sequelize) {
await queryInterface.removeColumn('Articles'

最低0.47元/天 解锁文章
971

被折叠的 条评论
为什么被折叠?



