원래는 SQL 문법으로 테이블을 생성해야하지만, NestJS에 TypeORM을 설치했으므로 프로젝트 내에서 생성할 수 있다.
이러한 테이블을 Entity 라고 명칭한다.
따로 테이블이라 명칭하지 않는 이유는 테이블을 모델 데이터로 파싱하였고 이 모델을 명칭하는 것이기 때문이다.

우선 src에 원하는 곳에 entities 폴더를 만들고 그 안에 생성할 Entity 를 작성할 파일을 만든다.
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class PostsModel {
@PrimaryGeneratedColumn()
id: number;
@Column()
author: string;
@Column()
title: string;
@Column()
content: string;
@Column()
likeCount: number;
@Column()
commentCount: number;
}
Entity는 위와 같이 작성한다.
참고로 @PrimaryColumn 혹은 @PrimaryGeneratedColumn은 반드시 포함되어야 한다.
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { PostsModule } from './posts/posts.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { PostsModel } from './posts/entities/posts.entity';
@Module({
imports: [
PostsModule,
TypeOrmModule.forRoot({
type: 'postgres',
host: '127.0.0.1',
port: 5432,
username: 'postgres',
password: 'postgres',
database: 'postgres',
entities: [PostsModel],
synchronize: true, //프로덕션 환경에선 false해야함
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
entities: [PostsModel],
마지막으로 app.module.ts 의 entities 부분에 해당 Entity를 넣어준다.

그리고 서버를 실행하고 Postgres 툴을 Refresh 하면 위와 같이 posts_model이라는 테이블이 생성된 것을 볼 수 있다.
'NestJS' 카테고리의 다른 글
| TypeORM - Entity Column 탐구 (0) | 2025.02.24 |
|---|---|
| TypeORM - Repository 주입하기 (0) | 2025.02.24 |
| TypeORM - NestJS에 설정하기 (0) | 2025.02.24 |
| VCS에서 PostgreSQL 툴 사용하기 (0) | 2025.02.24 |
| Docker Compose 사용 및 Postgres 설치 (0) | 2025.02.24 |