NestJS, TypeORM, PostgreSQL, pgAmdin을 사용하였습니다.
초기 상태
게시물을 관리하는 Board 테이블을 정의하였습니다.
아래와 같이 Entity 파일을 작성한 후 샘플 데이터를 INSERT 하였습니다.
import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
import { BoardStatus } from './board-status.enum';
@Entity()
export class Board extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
title: string;
@Column()
description: string;
@Column()
status: BoardStatus;
}
오류 발생
테이블에 test라는 이름의 column을 추가하기 위해 아래와 같이 Entity 파일을 수정하였습니다.
import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
import { BoardStatus } from './board-status.enum';
@Entity()
export class Board extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
title: string;
@Column()
description: string;
@Column()
status: BoardStatus;
@Column()
test: number;
}
QueryFailedError가 발생하기 시작했습니다.
샘플로 넣어둔 데이터에는 test column 값이 존재하지 않기 때문에 발생하는 오류였습니다.
[Nest] 6190 - 2021. 12. 14. 오후 1:43:42 ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)...
QueryFailedError: column "test" of relation "board" contains null values
오류 해결
두 가지 방법으로 해결해보았습니다.
첫 번째는 샘플 데이터에 test column 값을 넣어주는 방법입니다.
두 번째는 새로 추가할 column에 nullable 설정을 해주는 방법입니다.
import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
import { BoardStatus } from './board-status.enum';
@Entity()
export class Board extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
title: string;
@Column()
description: string;
@Column()
status: BoardStatus;
@Column({ nullable: true })
test: number;
}