[error] sequelize 1054 Unknown Column x in ‘on clause’

mangojang·2022년 12월 26일
0
post-thumbnail

✍️ sequelize 처음 다뤄보는데(mysql도 처음이다….) error가 감이 안 잡힌다.😢 mysql 지식이 부족 해서 그런가.. 이번 error 해결하는데 꽤나 애를 먹었다. 쿼리 문을 잘 못 작성 할 줄 알고, 몇 번을 찾아보고, 한 글자 한 글자 봤는지 모른다. 코드는 이상이 없었고, 엉뚱한 곳에서 문제였다. 모든 답은 에러창에 있었다.

상황

  • User db에서 user의 id 값을 조회 하여 Post, Followings, Followers 값을 join 해서 가져오려고 한다.
  • User 와 Post 는 1: n 관계 , User와 Followers, Followings는 각각 n:m 관계

  • join 실행 시, 다음 과 같은 error 상황이 나타났다.

해결

  • error code : 1054 : columm이 있거나, 없어서 뜨는 에러
  • Post.UserId column에 주목 하라 ! - 실제 워크 벤치를 통해 Post db를 확인해 본 결과, UserId Column 이 없었다.(커뮤니티 글 못 찾았으면 이 생각 계속 못하고 있을 뻔;;)

  • db.sequelize.sync({force: true}); 로 db를 초기화 시키고 서버를 다시 실행 하면 없었던 Column이 생성 된다.
    //index.js 
    //....
    db.sequelize.sync({force: true}); // force:true 옵션은 실행하고 다시 지워 준다. 
    //.....
    ⚠️ 위의 방법은 데이터가 다 날아가기 때문에 개발용 서버에서만 실행하기를 권장한다.

참고 문헌

profile
한 걸음 한 걸음 계속 걷는 자가 일류다

0개의 댓글