프리즈마 미리보기기능 참조 무결성 설정(feat. PlanetScale)

1. referenceIntegrity 설정


스킴 프리즘

Prisma에서 설정할 때 데이터베이스의 참조 무결성이 설정됩니다.

referentialIntegrity 미리보기 기능은 더 이상 사용되지 않습니다.

오류를 보려면.


공식 Prisma 문서(https://www.prisma.io/docs/concepts/components/prisma-schema/relations/relation-mode)

프리즘 공식 문서당신이 읽는다면 Prisma 버전 3.1.1에서 사용되는 referentialIntegrity 함수는 Prisma 버전 4.8.0부터 relationMode로 대체되었습니다.

그것은 말했다

따라서 위의 스크린샷과 같이 relationMode=”prism” 옵션을 변경하면 문제가 해결됩니다.

2. relatedMode 설정 이유

오류를 고쳤는데 왜 relatedMode를 설정해야 하나요?

이것은 공식 Prisma 문서에도 잘 설명되어 있습니다.


옵션 설명(출처: https://www.prisma.io/docs/concepts/components/prisma-schema/relations/relation-mode#handle-relations-in-your-relational-database-with-the-foreignkeys – 관계 모드)

관계 설정 방법(출처: https://www.prisma.io/docs/concepts/components/prisma-schema/relations/relation-mode#handle-relations-in-your-relational-database-with-the- 외래 키 관계 모드)

관계형 DB(PostgreSQL, MySQL, SQLite, SQL Server, CockroachDB)에서 관계는 항상 DB의 외래 키를 사용하여 생성됩니다.

이러한 옵션은 relationMode가 설정되지 않은 관계형 DB에서 항상 활성화됩니다.

하지만, NoSQL MongoDB 또는 PlanetScale과 같은 일부 관계형 DB에서는 ForeignKeys 관계 모드 옵션을 기본적으로 사용할 수 없습니다.

따라서 관계 설정을 위해 prisma에서 relationMode를 제공합니다.


Prisma에서 제공하는 relationMode 성능 설명(출처: https://www.prisma.io/docs/concepts/components/prisma-schema/relations/relation-mode#emulate-relations-in-prisma-with-the-prisma-relation -모드 )

Prisma는 Prisma 관계 모드(relationMode:prisma)를 통해 참조 무결성을 지원하지만

기능을 모방하기 위해 추가 DB 쿼리를 사용하기 때문에 성능 영향이 있다고 합니다.