- ensure_schema() broker_credentials: daemon_id NOT NULL, PK=(daemon_id,broker)로 갱신 - _row_to_broker_credential: Step2 컬럼 순서(daemon_id 선두)로 갱신 - upsert_broker_credential: ON CONFLICT (daemon_id,broker)로 수정, fallback try/except 제거 - list_broker_credentials: fallback 제거, SELECT 컬럼 순서 갱신 - test_bat020_broker_credential_domain.py: AC-3/AC-4 행 순서를 Step2 포맷으로 갱신 - tests/test_bat021_step2_ensure_schema_and_upsert.py: 12개 신규 테스트 - docs/runbooks/bat-021-req047-step2-migration-runbook.md: 운영 적용 런북 - docs/batches/bat-021: batch 문서(index/planning/design/implementation/verification) 실 PostgreSQL 통합검증(AC-1~7 전건 PASS): Step1 upgrade → backfill → Step2 upgrade → downgrade 시나리오 포함 NULL 사전검증(upgrade 거부) 및 downgrade 안전장치(중복 시 RuntimeError) 확인 521 passed, 0 failed (기존 509 + 신규 12)
29 lines
973 B
Markdown
29 lines
973 B
Markdown
# BAT-021 Index
|
|
|
|
- Profile: standard
|
|
- Status: in-progress
|
|
- Included REQ: REQ-047
|
|
- Discovery: dcy-010
|
|
- Created: 2026-06-28
|
|
|
|
## Scope Summary
|
|
|
|
REQ-047 Step2 마무리 batch.
|
|
|
|
BAT-020(PR #17, d4acfd4)에서 Step1/Step2 마이그레이션 revision 코드가 작성됐으나
|
|
실 PostgreSQL 통합검증이 미완이고, Step2 적용 후 동반 코드 수정 2건이 TODO로 잔존했다.
|
|
|
|
이 batch는:
|
|
1. `ensure_schema()` `broker_credentials` CREATE TABLE을 최종 daemon-scoped 스키마로 갱신
|
|
2. `upsert_broker_credential` `ON CONFLICT (user_id, broker)` → `ON CONFLICT (daemon_id, broker)` 수정 + fallback 트랜잭션 abort 이슈 정리
|
|
3. dev/test PostgreSQL에서 Step1 → backfill → Step2 → downgrade 통합검증 (AC-1~7)
|
|
4. 운영 적용 런북 작성
|
|
5. 신규/갱신 단위 테스트 추가
|
|
|
|
## Documents
|
|
|
|
- [planning.md](./planning.md)
|
|
- [design.md](./design.md)
|
|
- [implementation.md](./implementation.md)
|
|
- [verification.md](./verification.md)
|