Drizzle | 'with' 옵션을 사용한 시딩
This guide assumes familiarity with:
경고
with
를 사용하려면 테이블 간에 일대다 관계가 있어야 합니다.
예를 들어, 한 명의 사용자가 여러 개의 게시글을 가질 경우 다음과 같이 with
를 사용할 수 있습니다:
위의 시딩 스크립트를 실행하면 다음과 같은 오류가 발생합니다.
이 오류를 해결하기 위한 몇 가지 방법이 있습니다:
posts
테이블의 authorId
컬럼에 users
테이블을 참조하도록 스키마를 수정할 수 있습니다.
- 스키마에 일대다 관계를 추가하고 시드 함수 스키마에 포함시킬 수 있습니다.
예제 2
위의 시딩 스크립트를 실행하면 다음과 같은 오류가 발생합니다.
왜?
스키마에서 posts
테이블이 users
테이블을 참조하고 있습니다.
다시 말해, 하나
의 사용자가 여러
개의 게시물을 가질 수 있는 일대다 관계가 있습니다.
그러나 시딩 스크립트에서는 하나
의 게시물에 대해 여러
명의 사용자(3명)를 생성하려고 시도하고 있습니다.
이 오류를 해결하려면 시딩 스크립트를 다음과 같이 수정할 수 있습니다:
예제 3
위의 시딩 스크립트를 실행하면 오류가 발생합니다.
왜 그럴까요?
스키마에서 users
테이블이 users
테이블을 참조하고 있습니다.
다시 말해, 한 명의 사용자가 오직 한 명의 사용자만 가질 수 있는 일대일 관계를 정의한 것입니다.
하지만 시딩 스크립트에서는 한 명의 사용자에게 3명(다수
)의 사용자를 생성하려고 시도하고 있습니다. 이는 불가능합니다.