Skip to content

fix: 메뉴관리 분할 DDL에서 중복된 사이트맵 테이블 정의 제거 (#1399) - #1400

Open
Taek-D wants to merge 1 commit into
eGovFramework:mainfrom
Taek-D:fix/mnu-ddl-duplicate-sitemap
Open

Taek-D wants to merge 1 commit into
eGovFramework:mainfrom
Taek-D:fix/mnu-ddl-duplicate-sitemap

Conversation

@Taek-D

@Taek-D Taek-D commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

관련 이슈: #1399

수정 사유 Reason for modification

소스를 수정한 사유가 무엇인지 체크해 주세요. Please check the reason you modified the source. ([X] X는 대문자여야 합니다.)

  • 버그수정 Bug fixes
  • 기능개선 Enhancements
  • 기능추가 Adding features
  • 기타 Others

수정된 소스 내용 Modified source

메뉴관리 분할 DDL src/script/ddl/*/sym.mnu_create_*.sql 8개에서 두 번 들어 있던 사이트맵 테이블 COMTNSITEMAP 정의 중 뒤쪽 것을 지웠습니다.

  • 지운 블록은 앞쪽 정의와 글자 하나까지 같습니다(주석 /* 사이트맵 */, CREATE TABLE, 인덱스 또는 PK, 뒤따르는 빈 줄). 파일마다 삭제만 있고 추가된 줄은 없습니다(합계 -137줄).
  • 앞쪽 정의는 그대로 두었습니다. FK(REFERENCES COMTNSITEMAP)가 있는 6개 파일에서도 앞쪽 정의가 FK보다 먼저 나오므로 생성 순서는 그대로입니다.
  • 통합 스크립트(script/ddl/*/com_DDL_*.sql)에는 중복이 없어 손대지 않았습니다.
DB 파일 삭제 줄 수
altibase sym.mnu_create_altibase.sql 15
cubrid sym.mnu_create_cubrid.sql 15
goldilocks sym.mnu_create_goldilocks.sql 14
maria sym.mnu_create_maria.sql 21
mysql sym.mnu_create_mysql.sql 21
oracle sym.mnu_create_oracle.sql 15
postgres sym.mnu_create_postgres.sql 21
tibero sym.mnu_create_tibero.sql 15

JUnit 테스트 JUnit tests

테스트를 완료하셨으면 다음 항목에 [대문자X]로 표시해 주세요. When you're done testing, check the following items.

  • JUnit 테스트 JUnit tests
  • 수동 테스트 Manual testing

SQL 스크립트만 바꿨고 스크립트 적재를 다루는 JUnit 테스트가 없어 수동으로 확인했습니다.

테스트 브라우저 Test Browser

테스트를 진행한 브라우저를 선택해 주세요. Please select the browser(s) you ran the test on. (다중 선택 가능 you can select multiple) [X] X는 대문자여야 합니다.

  • Chrome
  • Firefox
  • Edge
  • Safari
  • Opera
  • Internet Explorer
  • 기타 Others (DB 적재와 조회로 확인)

테스트 스크린샷 또는 캡처 영상 Test screenshots or captured video

환경: 기준 코드 main(8badeb0), Windows 11 + Docker 29.7.2. 각 DB의 기본 클라이언트로 sym.mnu_create_*.sql을 빈 DB에 적재했습니다.

DB / 적재 방식 수정 전 수정 후
mysql:8.0 / mysql < 파일 종료 코드 1, Table 'COMTNSITEMAP' already exists, COMTNMENUCREATDTLS 없음 종료 코드 0, 두 테이블 모두 생성
mariadb:11.4 / mariadb < 파일 종료 코드 1, 같은 오류, COMTNMENUCREATDTLS 없음 종료 코드 0, 두 테이블 모두 생성
postgres:16 / psql -v ON_ERROR_STOP=1 종료 코드 3, relation "comtnsitemap" already exists, comtnmenucreatdtls 없음 종료 코드 0, 두 테이블 모두 생성
postgres:16 / psql 기본 오류 2건 출력, 두 테이블 생성 오류 없음, 두 테이블 생성

수정 전 MySQL에서 메인 메뉴 조회(EgovMainMenu_SQL_mysql.xml의 COMTNMENUCREATDTLS A, COMTNMENUINFO B 조인)를 실행하면 ERROR 1146 (42S02): Table 't.COMTNMENUCREATDTLS' doesn't exist가 나고, 수정 후에는 정상 실행됩니다.

Altibase, CUBRID, Goldilocks, Oracle, Tibero는 실행 환경이 없어 적재하지 않았습니다. 이 5개 파일은 같은 중복 블록을 지운 것이며, 남은 CREATE TABLE COMTNSITEMAP이 1개이고, FK가 있는 파일에서는 그 정의가 REFERENCES COMTNSITEMAP보다 앞에 있는 것을 확인했습니다.

src/script/ddl/*/sym.mnu_create_*.sql 8개에 COMTNSITEMAP 테이블과
인덱스(또는 PK) 정의가 똑같이 두 번 들어 있어, 오류에서 멈추는 방식으로
적재하면 두 번째 정의에서 중단되고 그 뒤의 COMTNMENUCREATDTLS가
만들어지지 않는다. 앞쪽 정의는 그대로 두고 뒤쪽 중복만 지운다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant