• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

24.02.22 11:13 작성 24.02.22 11:25 수정 조회수 181

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

안녕하세요!

defulat value가 없다..

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

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

감사합니다!