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.tradenullable,city.trustREALauction_bid.metaJSONB, NOT NULLtraffic_period,traffic_period_general존재 및(world_state_id, year, month)/(period_id, general_id)unique key
검증 뒤에는 이름을 확인한 임시 database와 role만 제거한다. 공유 개발 database나 Compose volume을 삭제하지 않는다.