nestjs
TypeORM 실전
TypeOrm 실전
세팅
// 1. NestJS 세팅
$ nest new _프로젝트이름_
// 2. TypeOrm 설치
$ npm i @nestjs/typeorm typeorm pg
// 3. Docker 세팅
docker-compose.yaml 파일 작성
postgres-data 폴더 생성
services:
postgres:
image: postgres:15
restart: always
volumes:
- ./postgres-data:/var/lib/postgresql/data
ports:
- "5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: typeormstudy
// 4. TypeOrm 세팅
app.module.ts 파일에서 imports 수정
@Module({
imports: [
TypeOrmModule.forFeature([UserModel]),
TypeOrmModule.forRoot({
type: 'postgres',
host: '127.0.0.1',
port: 5432,
username: 'postgres',
password: 'postgres',
database: 'typeormstudy',
entities: [UserModel],
synchronize: true,
}),
],
controllers: [AppController],
providers: [AppService],
})
// 5. Docker 실행
$ docker-compose up
// 6. Nest 실행
$ npm run start:dev
// 7. entity 생성
src/entity/user.entity.ts 파일 생성
@Entity()
export class UserModel{
//ID
@PrimaryGeneratedColumn()
id: number;
// 제목
@Column()
title: string;
// 데이터 생성 일자
@CreateDateColumn()
createdAt: Date;
// 데이터 업데이트 일자
@UpdateDateColumn()
updatedAt: Date;
// 버전관리
@VersionColumn()
version: number;
@Column()
@Generated('increment')
additionalId: number;
}
// 8. Entity 적용
app.module.ts 파일에서 entites 부분에 엔티티 이름 추가
// 9. app.controller.ts 수정
app.controller.ts 에서 요청 처리 함수 작성