Skip to content

fix(event): 본문이 길면 문서 저장이 500 — event_publication.serialized_event 컬럼 확장 (#47) - #50

Merged
ZaMan0806 merged 1 commit into
developfrom
fix/47-event-publication-column-length
Nov 12, 2026
Merged

ZaMan0806 merged 1 commit into
developfrom
fix/47-event-publication-column-length

Conversation

@ZaMan0806

Copy link
Copy Markdown
Contributor

Refs #47

원인 (추정)

Spring Modulith의 event_publication.serialized_event는 엔티티에 길이 지정이 없어 ddl-auto가 VARCHAR(255)로 만든다. ArticleUpdatedEvent는 본문을 통째로 담아 JSON으로 이 컬럼에 저장되는데, 본문 외 필드가 약 200자를 차지해 제목+본문이 50자 안팎을 넘으면 "Data too long"으로 문서 저장 트랜잭션 전체가 롤백된다.

#47의 재현 표도 실패한 쪽은 모두 본문이 길고 성공한 쪽은 짧아서, 같은 원인일 가능성이 높다(링크·로그인 여부는 우연으로 보인다).

서버 로그로 확정한 것은 아니다. stage 로그에 Data too long for column 'serialized_event'가 있으면 확정된다.

변경

  • EventPublicationSchemaFix: 기동할 때마다 ALTER TABLE event_publication MODIFY serialized_event LONGTEXT NOT NULL 실행
    • 라이브러리 엔티티라 매핑을 고칠 수 없고, ddl-auto: update는 기존 컬럼을 넓히지 않아서 이 방식을 택했다.
    • 배포만 하면 stage/prod와 새 DB 모두 수동 SQL이 필요 없다.

⚠️ 주의

  • ALTER가 실패하면(DB 계정에 ALTER 권한이 없는 경우 등) 앱이 기동하지 않는다.
  • MySQL 전용 구문이다.

테스트

  • ./mill __.test 통과
  • 실제 MySQL에서의 재현·수정 검증은 하지 못했다(로컬에 DB 환경 없음). 배포 후 stage에서 50자 넘는 본문 저장을 확인해야 한다.

@ZaMan0806
ZaMan0806 merged commit 544a5a4 into develop Nov 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants