배경
cleanRequiredText/cleanNullableText는 문자 수(코드 포인트)로 상한을 판정한다. @db.Text(65,535바이트) 컬럼에 50,000자 상한을 걸어 둔 경로(예: SellerProductLifecycleService → Product.description)는 한글 50,000자(150KB)·이모지 17,000개(68KB)처럼 문자 수는 통과하지만 바이트가 넘쳐 DB 오류가 난다.
PR #316 리뷰(Codex)에서 지적. 코드 포인트 전환(#316) 이전의 UTF-16 기준으로도 동일하게 통과하던 기존 문제라 해당 PR 범위 밖으로 분리.
후보
@db.Text 컬럼을 MEDIUMTEXT로 마이그레이션(16MB) — 상한 50,000자 × 4바이트 = 200KB로 충분
- 또는 헬퍼에
maxBytes 옵션을 추가해 TEXT 경로에서 65,535바이트를 함께 검증
대상 파악
grep -n "@db.Text" prisma/schema.prisma로 컬럼 목록을 뽑고, 각 컬럼에 쓰이는 헬퍼 상한을 대조한다.
배경
cleanRequiredText/cleanNullableText는 문자 수(코드 포인트)로 상한을 판정한다.@db.Text(65,535바이트) 컬럼에 50,000자 상한을 걸어 둔 경로(예:SellerProductLifecycleService→Product.description)는 한글 50,000자(150KB)·이모지 17,000개(68KB)처럼 문자 수는 통과하지만 바이트가 넘쳐 DB 오류가 난다.PR #316 리뷰(Codex)에서 지적. 코드 포인트 전환(#316) 이전의 UTF-16 기준으로도 동일하게 통과하던 기존 문제라 해당 PR 범위 밖으로 분리.
후보
@db.Text컬럼을MEDIUMTEXT로 마이그레이션(16MB) — 상한 50,000자 × 4바이트 = 200KB로 충분maxBytes옵션을 추가해 TEXT 경로에서 65,535바이트를 함께 검증대상 파악
grep -n "@db.Text" prisma/schema.prisma로 컬럼 목록을 뽑고, 각 컬럼에 쓰이는 헬퍼 상한을 대조한다.