Files
core2026/packages/infra/prisma/migrations
2026-07-27 11:32:48 +00:00
..
2026-07-27 11:32:48 +00:00

Game database migrations

game.prisma의 운영·검증 DB는 이 디렉터리의 migration chain으로 준비한다. 새 환경을 prisma db push만으로 만들지 않는다.

적용

Git에서 제외된 환경 파일 또는 secret 주입으로 DATABASE_URL을 설정한 뒤 저장소 루트에서 실행한다.

pnpm --filter @sammo-ts/infra prisma:migrate:deploy:game
pnpm --filter @sammo-ts/infra prisma:migrate:status:game

20250101000000_init_game_schema는 증분 migration 이력이 생기기 전에 db push로 제공되던 핵심 game table의 baseline이다. 기존 설치에는 이미 같은 object가 있으므로 type, table과 index 생성은 idempotent하게 작성했다. 새 migration은 이 baseline 또는 기존 migration 파일을 수정하지 말고 뒤에 추가한다.

빈 DB 검증

다른 개발 DB나 volume을 재사용하지 말고 전용 임시 PostgreSQL database를 만든다. 위 deploy 명령을 한 번 실행해 전체 migration이 성공하는지, 두 번째 실행이 No pending migrations to apply인지 확인한다. 최소한 다음도 확인한다.

  • _prisma_migrations의 모든 행이 완료 상태
  • world_state, nation, city, general, message, troop, general_turn, nation_turn, diplomacy, event, log_entry, error_log 존재
  • nation.chief_general_id 존재
  • city.trade nullable, city.trust REAL
  • auction_bid.meta JSONB, NOT NULL
  • traffic_period, traffic_period_general 존재 및 (world_state_id, year, month)/(period_id, general_id) unique key

검증 뒤에는 이름을 확인한 임시 database와 role만 제거한다. 공유 개발 database나 Compose volume을 삭제하지 않는다.