fix: 메뉴 순서 V017 을 모든 활성 테넌트 DB 에도 적용
Build & Deploy to K8s / build-and-deploy (push) Failing after 6m54s

Flyway V017 은 메타 DB 만 갱신하지만 MENU_INFO 의 슈퍼관리자 메뉴
(COMPANY_CODE='*') 는 회사 프로비저닝 때 각 테넌트 DB 로 복사되어
박혀있다. StartupSchemaMigrator 에 동일 UPDATE 를 넣어 부팅 시 메타 +
모든 활성 테넌트에 자동 동기화. SEQ 만 갱신하므로 멱등.
This commit is contained in:
2026-05-04 13:16:10 +09:00
parent 47a2f97da5
commit e1be30f8ca
@@ -41,7 +41,33 @@ public class StartupSchemaMigrator {
private static final List<String> MIGRATIONS = List.of(
// RUN_082: 첫 로그인 비밀번호 강제 변경 플래그
"ALTER TABLE USER_INFO ADD COLUMN IF NOT EXISTS FORCE_PASSWORD_CHANGE BOOLEAN DEFAULT FALSE"
"ALTER TABLE USER_INFO ADD COLUMN IF NOT EXISTS FORCE_PASSWORD_CHANGE BOOLEAN DEFAULT FALSE",
// V017: 회사 관리 그룹 하위 관리자 메뉴 순서 재배열
// 조직 계층(회사→부서→사용자) + 권한 체계(메뉴→권한→권한그룹)
// 메타 DB 는 Flyway V017 로도 적용되지만 프로비저닝된 테넌트 DB 는
// 회사 생성 시점 스냅샷이 박혀있으므로 부팅 때 모든 활성 DB 에 동기화.
// SEQ 만 갱신 → 멱등.
"""
UPDATE MENU_INFO
SET SEQ = CASE MENU_NAME_KOR
WHEN '회사관리' THEN 100
WHEN '부서관리' THEN 200
WHEN '사용자관리' THEN 300
WHEN '메뉴관리' THEN 400
WHEN '권한관리' THEN 500
WHEN '권한 그룹관리' THEN 600
ELSE SEQ
END
WHERE MENU_TYPE = '0'
AND COMPANY_CODE = '*'
AND PARENT_OBJ_ID IS NOT NULL
AND PARENT_OBJ_ID <> '0'
AND MENU_NAME_KOR IN (
'회사관리', '부서관리', '사용자관리',
'메뉴관리', '권한관리', '권한 그룹관리'
)
"""
);
@EventListener(ApplicationReadyEvent.class)