인프런 커뮤니티 질문&답변

아이팥님의 프로필 이미지

작성한 질문수

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

디버거 사용하기

typeorm primary key 커스텀 질문드립니다!

24.02.22 11:13 작성

·

305

·

수정됨

0

import { nanoid } from 'nanoid';
import {
  PrimaryColumn,
  CreateDateColumn,
  UpdateDateColumn,
  DeleteDateColumn,
} from 'typeorm';

export abstract class BaseModel {
  @PrimaryColumn({ length: 21 })
  id: string = nanoid(10);

  @CreateDateColumn({ name: 'created_at', type: 'timestamp' })
  createdAt: Date;

  @UpdateDateColumn({ name: 'updated_at', type: 'timestamp', nullable: true })
  updatedAt: Date | null;

  @DeleteDateColumn({ name: 'deleted_at', type: 'timestamp', nullable: true })
  deletedAt: Date | null;
}

기존 express 플젝이 pk가 nanoid라서 nest에서 똑같이 적용하려고 했지만 유저 생성 (save)까지는 nanoid가 잘 들어가지만 외래키로 연결된 role 테이블에 user id를 주입시키는 순간 Field 'id' doesn't have a default value 에러가 발생합니다.

user 테이블 role 테이블 둘다 baseModel을 상속받아 구성했고 @PrimaryGeneratedColumn() 으로 변경하면 해결이 되긴 하는데... nanoid를 저렇게 주입시켜서 생기는 문제일까요?

 

답변 1

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

2024. 02. 23. 11:49

안녕하세요!

defulat value가 없다..

아마 값이 안들어갔다고 인식이 됐는데 (이 이유는 잘 모르겠습니다. 코드 로직상의 문제일 가능성이 높아보여요) 값은 존재 해야하고 default 값이 안정해져 있으니까 생기는 에러 같은데요.

객체를 만들때 nanoid 값이 잘 생성이 되고 있는지를 봐보셔야 할 것 같습니다.

감사합니다!