Table
Sequelize 모델 클래스를 정의하는 데코레이터입니다. TypeIs 타입 시스템과 연동하여 Sequelize 컬럼, DBML, 콘솔 데이터를 자동 생성합니다.
Import
import { Table } from '@asapjs/sequelize';
시그니처
function Table(options: ModelOptions): ClassDecorator
파라미터
| 이름 | 타입 | 설명 |
|---|---|---|
options | ModelOptions | Sequelize 모델 옵션 (sequelize 패키지의 ModelOptions 타입) |
주요 옵션
| 옵션 | 타입 | 기본값 | 설명 |
|---|---|---|---|
tableName | string | 클래스명 | 실제 DB 테이블명 |
timestamps | boolean | true | created_at, updated_at 자동 생성 |
동작
- 클래스에 정의된
TypeIs필드를 Sequelize 어트리뷰트로 변환 ForeignKey,BelongsTo타입은 별도 관계 컬럼으로 처리timestamps가false가 아니면created_at,updated_at자동 추가- DBML 생성 및 콘솔 데이터에 테이블 정보 등록
- 기본 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
- TypeIs — 컬럼 타입 정의
- initSequelizeModule — 모듈 초기화 시 Table 자동 로드
- Repository — 모델 기반 CRUD 저장소