Sequelize의 paranoid 속성 > 메모

본문 바로가기
사이트 내 전체검색

메모

nodejs Sequelize의 paranoid 속성

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 32회 작성일 25-10-23 12:01

본문

Sequelize의 paranoid 속성 설명

paranoid 속성은 Sequelize에서 소프트 삭제(Soft Delete) 기능을 활성화하는 옵션입니다.

주요 특징:

  1. 소프트 삭제: paranoid: true로 설정하면 레코드를 실제로 데이터베이스에서 삭제하지 않고, deletedAt 컬럼에 삭제 시간을 기록합니다.
  2. 자동 컬럼 추가:
    • deletedAt 컬럼이 자동으로 추가됩니다
    • 이 컬럼은 레코드가 삭제된 시간을 저장합니다
  3. 쿼리 동작:
    일반적인 findAll(), findOne() 등의 쿼리는 삭제되지 않은 레코드만 반환합니다 삭제된 레코드도 포함하려면 paranoid: false 옵션을 사용해야 합니다

사용 예시:


// 일반 삭제 (paranoid: false인 경우)
await User.destroy({ where: { id: 1 } }); // 실제로 DB에서 삭제

// 소프트 삭제 (paranoid: true인 경우)
await User.destroy({ where: { id: 1 } }); // deletedAt에 현재 시간 기록

// 삭제된 레코드 복구
await User.restore({ where: { id: 1 } }); // deletedAt을 null로 설정

// 삭제된 레코드도 포함하여 조회
await User.findAll({ paranoid: false });

장점:

  • 데이터 복구 가능: 실수로 삭제한 데이터를 쉽게 복구할 수 있습니다
  • 감사 추적: 언제 삭제되었는지 추적할 수 있습니다
  • 관계 무결성: 다른 테이블과의 관계를 유지하면서 삭제할 수 있습니다

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 티로그 / 대표 : 김태규
주소 :부산광역시 수영구 광안로7번길 22 창성빌딩 3층
사업자 등록번호 : 617-86-10993
전화 : 051-325-6700 팩스 : 051-325-5665
통신판매업신고번호 : 제 2013-부산수영-0167 호
개인정보관리책임자 : 손승목

  • 게시물이 없습니다.

접속자집계

오늘
1,792
어제
2,676
최대
4,387
전체
468,521
Copyright © 소유하신 도메인. All rights reserved.