fix: 메뉴 순서 V017 을 모든 활성 테넌트 DB 에도 적용
Build & Deploy to K8s / build-and-deploy (push) Failing after 6m54s
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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user