Skip to content
This repository was archived by the owner on Sep 24, 2026. It is now read-only.
This repository was archived by the owner on Sep 24, 2026. It is now read-only.

[운영] DDL 을 빠뜨리고 배포하면 앱은 멀쩡히 뜨고 조용히 못 한다 #98

Description

@RosieOh

📄 설명

DB-first 라 운영에 prisma migrate 를 쓰지 않는다. prisma/sql/*.sql 을 사람이 확인하고 적용하므로, 코드만 배포되고 DDL 이 빠지는 일이 구조적으로 가능하다.

⚠️ 그때 앱은 멀쩡히 뜬다. 기동 로그는 정상이고, 실패는 한 시간 뒤 배치에서 처음 드러난다. 그 한 시간은 하필 배포 직후다.

빠진 DDL 무엇이 조용히 실패하나
008 risk_scores.missing_factors 위험도 저장이 매번 실패 → 시민 화면에 아무 단계도 안 나온다
007 prediction_evaluations.actual_granularity 예측 대조 배치가 매번 실패
009 static_guide_translations 안내 문구 조회 실패 → 응급대처법이 화면에서 사라진다

지금 이 저장소에 적용 대기 중인 DDL 이 셋이다(007·008·009). 세지 않으면 아무도 모른다.

왜 지금까지 안 걸렸나

기동 시 스키마 점검이 없다. 환경변수는 검증하는데(env.validation.ts, CORS_ORIGIN 은 운영에서 기동을 막는다) 스키마는 안 본다.

✅ 작업할 내용

  • 코드가 가정하는 스키마를 목록으로
  • 기동 시 점검 — 없으면 뜨지 않는다
  • 오류에 적용할 SQL 파일 함께
  • 목록이 실제 DB·파일과 맞는지 스모크

🙋🏻 참고 자료

점검 자체가 실패하면(관리형 DB 의 information_schema 권한 제한 등) 경고만 남기고 통과시켜야 한다 — 점검기가 서비스 전면 중단의 원인이 되면 안 된다. 레이트 리밋이 Redis 장애 때 fail-open 하는 것과 같은 기준이다.

인덱스처럼 "있으면 빠르고 없으면 느린" 것은 목록에 넣지 않는다. 기동을 막을 근거가 아니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1통합/보완 우선순위bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions