본문으로 건너뛰기

Table

Sequelize 모델 클래스를 정의하는 데코레이터입니다. TypeIs 타입 시스템과 연동하여 Sequelize 컬럼, DBML, 콘솔 데이터를 자동 생성합니다.

Import

import { Table } from '@asapjs/sequelize';

시그니처

function Table(options: ModelOptions): ClassDecorator

파라미터

이름타입설명
optionsModelOptionsSequelize 모델 옵션 (sequelize 패키지의 ModelOptions 타입)

주요 옵션

옵션타입기본값설명
tableNamestring클래스명실제 DB 테이블명
timestampsbooleantruecreated_at, updated_at 자동 생성

동작

  1. 클래스에 정의된 TypeIs 필드를 Sequelize 어트리뷰트로 변환
  2. ForeignKey, BelongsTo 타입은 별도 관계 컬럼으로 처리
  3. timestampsfalse가 아니면 created_at, updated_at 자동 추가
  4. DBML 생성 및 콘솔 데이터에 테이블 정보 등록
  5. 기본 charset: utf8mb4, collation: utf8mb4_general_ci

사용 예제

import { Table, TypeIs } from '@asapjs/sequelize';

@Table({ tableName: 'users', timestamps: true })
export default class UserTable {
@TypeIs.String({ comment: '사용자 이름' })
name: string;

@TypeIs.String({ comment: '이메일' })
email: string;

@TypeIs.Int({ comment: '나이' })
age: number;
}

timestamps 비활성화

@Table({ tableName: 'logs', timestamps: false })
export default class LogTable {
@TypeIs.String({ comment: '로그 메시지' })
message: string;
}

관련 API