Duplicate key value violates unique constraint

개발/PostgreSQL 2022. 1. 16. 01:43

포스트를 저장하는 API에서 500번대 에러가 발생하였다. 에러 로그를 찍어보니 "QueryFailedError: dupliacte key value violates unique constraint "PK_eff3e46d24d416b52a7e0ae4159"라고 출력되었다. 원인 TypeORM에서 @Entity를 통해 테이블을 생성하고, id 칼럼을 @PrimarayGeneratedColumn을 사용하여 primary key로 지정하고 unique value로 지정하고 PostgreSQL로 매핑하였는데 데이터를 복사하여 테이블로 이동시키면서 시퀀스 객체와 테이블의 키 값에 차이가 나면서 insert시 Duplicate key value violates unique constraint 에러가 발생된다. 해결..

TypeORM GroupBy를 사용하여 정렬 Count하기

개발/TypeORM 2022. 1. 14. 02:47

모든 유저를 지역별로, 연령별로 정렬하여 유저 수를 통계를 내야되는 이슈가 있었다. 연령별로 묶어서 Count를하여 aged_user: [{age:'21', age_count:'10'}, {age: '22', age_count:'12'}]의 형식으로 프론트에 리턴해주는 것을 목표로 typeorm QueryBuilder를 사용하여 쿼리를 구성하였다. const userByAge = await this.repository .createQueryBuilder('user') // 유저 테이블을 지칭하는 이름을 'user'로 한다. .select('user.age') // 정렬할 유저 테이블의 칼럼만 select한다. .orderBy('user.age', 'DESC') // select한 칼럼을 내림차순으로 정렬..

Article Thumbnail
Date 타입을 유지하면서 전/후 Date 출력하기

개발/TypeScript 2022. 1. 13. 08:20

TypeScript에서 현재 연도월일시분을 가져오는 방법은 아래와 같이 단순하다. const now = new Date(); 현재 기준으로 전날 혹은 다음 달을 포함한 Date를 출력해야되는 경우가 발생하였는데 대부분의 솔루션들은 일 또는 월로 변경시켜서 빼고 더하는 방식으로 Date 타입이 유지가 되지않는다는 단점이 있었다. StackOverflow에서 12년하고도 4달이나 지난 해당 질문에 대한 답변의 대댓글 중에 아래와 같이 처음보는 방식의 코드를 보게되었다. How to subtract days from a plain Date? Is there an easy way of taking a olain JavaScript Date (e.g. today) and going back X days? So, ..

Article Thumbnail
2021년 회고

년도별 회고 2022. 1. 3. 04:06

2021년 1월 1일날 "올해는 꼭 코로나 없어지게 해주세요" 라고 소원 빌었던 게 엊그제 같은데 벌써 2021년의 크리스마스가 지나고, 2022년을 향해 가고 있다. 평소에도 기억력이 단편적으로 기억해내는 수준이라 기억하는 것 보단 기록하는 것을 선호하는데 올해 처음으로 기술 블로그도 새로 정리하는 김에 1년마다 올해 어떻게 지냈는지, 올해 새롭게 배웠던 것을 회고하려한다. 1. 인턴쉽 2021 한 해는 시작부터 개발과 번아웃의 반복이었다. 20학번으로 대학교에 입학했지만, 코로나로 인해 따로 인간 관계를 넓힐 기회도 없었고, 알던 친구들은 다들 군대에 갔거나, 바빠서 연락도 되지 않았다. 지금 다시 생각해보면 공부하기 좋은 시기였던 거 같다. 이때 자바랑 스프링 공부나 해놓을 걸.... 사담이 길었지..

Article Thumbnail