작성
·
339
·
수정됨
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 값이 잘 생성이 되고 있는지를 봐보셔야 할 것 같습니다.
감사합니다!