씨퀄라이즈로 관계형 DB를 만들어 사용하는데
마이그레이션으로 테이블을 만들고, 관계를 설정해주고,
모델을 기준으로 디비에 접근해서 데이터를 사용하는 것이라고 대략 개념을 잡았다.
관계 설정을 해줬으니 디비를 사용하면 바로 관계 맺은 데이터를 사용할 수 있는 줄 알았는데
데이터에 접근해보니
라는 오류가 생겼었다.
나는 userId라는 칼럼을 만들어서 외래 키로 사용하려고 했는데
쿼리문을 보니 UserUserId라는 칼럼을 찾을 수가 없다는 오류가 생겼다.
처음엔 뭐지.. 했는데
전에 비슷한 오류를 본 사람이 말해주기를 외래 키의 이름? 을 설정해주지 않으면 참조해주는 테이블과 칼럼을 토대로 임의로 이름을 지어주기 때문에 생기는 오류라고 했다.
그래서 모델에서 hasmany, belongsto 같이 관계 맺은 데이터를 사용하면 되는 줄 알았는데 이 코드에 외래 키의 이름까지 설정을 해주어야
모델을 통해서 외래 키를 제대로 설정하고, 사용할 수 있다고 했다.
// models/posts.js
static associate(models) {
this.belongsTo(models.Users,{
foreignKey: "userId",
targetKey: "userId",
});
this.hasMany(models.Comments,{
foreignKey: "postId",
sourceKey: "postId",
});
this.hasMany(models.Likes,{
foreignKey: "postId",
sourceKey: "postId",
});
}
까지 해줘야 내가 원하는 userId라는 외래 키 칼럼이 만들어지기 때문에 잘 사용할 수 있었다.
'coding > Error' 카테고리의 다른 글
ERR_HTTP_HEADERS_SENT (0) | 2022.08.31 |
---|---|
인스턴스 접속 에러 (0) | 2022.08.19 |
함수의 {return } (0) | 2022.08.04 |
SyntaxError: Unexpected token } in JSON at position 67 (0) | 2022.07.29 |
const castError = new CastError(); (0) | 2022.07.29 |