Sequalize Paranoid Models

김상선·2024년 8월 6일
0

Sequalize 에서 Paranoid Models 은 데이터를 실제로 삭제하는 대신 "소프트 삭제(soft delete)"를 사용하는 접근 방식을 의미합니다.

Paranoid Model의 특징

  1. 소프트 삭제(Soft Delete):
    데이터를 물리적으로 삭제하지 않고, 삭제된 것처럼 표시만 합니다.
    이를 위해 deleted_at 같은 타임스탬프 필드를 추가하여 삭제된 시점을 기록합니다.
    이 필드가 NULL이 아닌 값을 가지면, 해당 데이터는 삭제된 것으로 간주합니다.

  2. 데이터 복구:
    실제 데이터가 삭제되지 않기 때문에, 실수로 삭제한 데이터를 쉽게 복구할 수 있습니다.
    deleted_at 필드를 NULL로 업데이트하면 데이터를 다시 활성화할 수 있습니다.

  3. 데이터 무결성 유지:
    데이터 무결성을 유지하며, 참조 무결성(constraints)을 적용하는데 유리합니다.
    데이터가 실제로 삭제되지 않기 때문에, 다른 테이블과의 관계를 유지할 수 있습니다.

Paranoid 로 모델을 정의하는 방법

@DeletedAt 데코레이션을 사용합니다.

import { InferCreationAttributes, InferAttributes, Model } from '@sequelize/core';
import { DeletedAt } from '@sequelize/core/decorators-legacy';

class User extends Model<InferAttributes<User>, InferCreationAttributes<User>> {
  @DeletedAt
  declare deletedAt: Date | null;
}
profile
일요일을 좋아합니다.

0개의 댓글