• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

TypeORM + Mysql관련 질문

22.05.04 20:06 작성 조회수 213

0

NestJS + TypeOrm을 통해서 데이터베이스(mysql)에 데이터를 Insert하는데 있어 질문 드립니다 (구글링을 해보았지만 TypeOrm의 업데이트가 되서 안먹히는건지, 제가 방법을 잘못활용하고 있는건지 모르겠습니다 / 공식문서대로 해봐도 안되네요 ㅜㅠ)

 

하고자 하는것

데이터 Insert시 CreatedAt과 UpdatedAt을 자동적으로 같이 입력되도록 하는것

문제점

둘다 null값으로 입력됨

 3. 파일

group.ts -> typeorm의 entity파일

@Entity 데코레이터로 정의

 4. 시도해본 것

공식문서

@CreateDataColumn() => null로 나옴

@CreateDataColumn({default() => CURRENT_TIMESTAMP(6)})

@Column({{default() => CURRENT_TIMESTAMP(6)})

=> null로 나옴

default: Date.now() => null로 나옴

createdAt의 타입문제인가싶어 타입도 any로 해서 진행해봄

 

아래는 필요한 소스코드 일부를 발췌했습니다

=================

import {

    BaseEntity,

    Column,

    CreateDateColumn,

    Entity,

    Index,

    JoinColumn,

    ManyToOne,

    OneToMany,

    PrimaryGeneratedColumn,

    UpdateDateColumn,

} from 'typeorm';

import { Appliers } from './Appliers';

import { Comments } from './Comments';

import { Users } from './Users';

 

@Index('FK_Users_TO_Groups_1', ['userId'], {})

@Entity('Groups', { schema: 'erunjrun' })

export class Groups extends BaseEntity {    

 

@CreateDateColumn()

    createdAt: any;

 

}

답변 1

답변을 작성해보세요.

0

조교C님의 프로필

조교C

2023.02.19

안녕하세요 :)
답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!

@CreateDateColumn() {
createdAt: any;
}

부분에 기본값을 넣어주셔야 합니다.

@CreateDateColumn({ type: "timestamp", default: () => "CURRENT_TIMESTAMP(6)" })
@UpdateDateColumn({ type: "timestamp", default: () => "CURRENT_TIMESTAMP(6)", onUpdate: "CURRENT_TIMESTAMP(6)" })