기존에 MySQL+Sequelize를 사용하다가, PostgreSQL로 DB를 이전하게 되었다.
dialect랑 접속정보만 바꿔주면 되는 간단한 작업이었는데, 아래와 같은 에러를 만나게 되었다.
there is no unique constraint matching given keys for referenced table "rfqs"
멀쩡하게 잘 되던게 DB를 바꾸니까 에러가 났기 때문에 설정이라든지 문법의 문제겠거니 했는데..
위 에러는 PK와 FK가 일치하지 않을 때 나는 에러다.
내 경우 한 테이블에 PK가 두개 지정되어 있었고, 해당 키를 FK로 갖는 다른 테이블은 두 PK중 하나만을 FK로 지정하고 있었다.
예를들어 (아무렇게나 쓴 수도코드다)
Person {
id: integer;
email: string;
name: string;
PK(id, email)
}
Wallet {
id: integer PK;
person_id: Person(id) FK;
balance: integer;
PK(id)
FK(person_id)
}
위 같은 경우 Person의 PK 중 하나를 제거하거나, Wallet의 FK에 email도 추가해주어야 한다.
'Web development > Node.js & Typescript' 카테고리의 다른 글
var vs let vs const (0) | 2020.07.19 |
---|---|
[Typescript] 제네릭(Generic)을 사용하는 이유 (0) | 2020.07.10 |
[Typescript] Jest 모킹시 빨간줄 뜨는 문제 (Property 'mock' does not exist on type) (0) | 2020.06.02 |
package-lock.json의 역할과 커밋해야 하는 이유 (0) | 2020.04.03 |
[Javascript] 이벤트루프와 호출 스택(call stack), 비동기성 (0) | 2020.04.03 |
댓글