TypeORM "QueryFailedError: Invalid default value for" 에러 해결

코코블루·2024년 6월 22일

NestJS와 TypeORM을 사용해서 MySQL 8에 연동작업을 하고 있었습니다.

그런데, "QueryFailedError: Invalid default value for 'updated_at'"라는 에러가 발생했습니다. 에러 내용은 updated_at이라는 Column을 지목하지만, 다른 시도 때는 'created_at' Column에도 동일한 문제가 생겼었습니다.

DDL을 수동으로 구성하고 Table을 생성해도, 빈 DB에 synchronize 옵션을 true로 하고, 자동으로 DDL을 구성해서 만들게 해도 동일한 오류가 발생했습니다.

인터넷에 찾아보니 sql_mode 수정, MySQL 버전 등등 여러 문제를 지적했는데요. 저는 이 모든게 안 됐습니다.

그래서 여러 시도를 했는데요. 결론은 이렇습니다. @UpdateDateColumn, @CreateDateColumn 을 사용할 때, default, onUpdate 값을 설정해선 안 됩니다.

deafult, onUpdate 값을 없애고 다시 실행하니 제대로 적용이 됩니다. 아마도 default 값이 중복으로 삽입이 되서 Invalid default value 값의 에러가 발생하는 것으로 보입니다.

비슷한 문제를 겪는 분들이 참고해주셨으면 좋겠습니다.
감사합니다.

profile
Have A Happy Coding Time!

0개의 댓글