과거 누적 DDL과 데이터 보정을 시점별 SQL로 분리하고 관리자·CLI 실행기를 제공한다. 실행 순서, 잠금, 체크섬, 성공·실패 이력 및 개별 실행의 선행 조건을 검증한다. 기존 스키마의 부분 적용 복구와 설치 SQL 정합성 검사를 추가하고 실행·복구 절차를 문서화한다.
3.8 KiB
과거 데이터베이스 패치 조사
일반 실행 경로에서 제거한 DDL과 전체 Git 이력을 대조했다. 최초 공개 스키마에 이미 포함된 2012~2013년 관리 화면 보정 코드는 기준선으로 분류하고, 별도 업그레이드 진입점에 추가된 2014년 이후 변경은 도입 커밋과 날짜별 마이그레이션으로 옮겼다.
| 도입일 | 원본 커밋 | 마이그레이션 | 주요 변경 |
|---|---|---|---|
| 2014-03-31 | 3889e0235 |
20140331_001_shop_cart_shipping |
장바구니 배송비 필드 |
| 2014-11-05 | de2b73436 |
20141105_001_shop_cart_select_time |
장바구니 선택 시각 |
| 2015-03-06 | 344b1983a |
20150306_001_shop_cart_indexes |
장바구니 조회 인덱스 |
| 2015-05-29 | a7cfae126 |
20150529_001_inicis_mobile_tables |
모바일 이니시스·주문 임시 테이블 |
| 2015-09-08 | 6495aa007 |
20150908_001_inicis_auth_number |
이니시스 승인번호 |
| 2016-04-22 | 4c9ac8b6b |
20160422_001_shop_test_order |
테스트 주문 구분 |
| 2016-04-27 | f1cd96dc3 |
20160427_001_shop_order_data_cart |
미완료 주문 장바구니 정보 |
| 2016-09-09 | 6e1aa4ac0 |
20160909_001_shop_coupon_zone |
쿠폰존 |
| 2017-09-21 | db7e07da2 |
20170921_001_inicis_notification_data |
이니시스 통지 원문 |
| 2018-03-30 | f7ac06d7d |
20180330_001_social_login |
소셜 로그인 설정·프로필 |
| 2019-12-02 | 22aad37bf |
20191202_001, 20191202_002 |
5.4 SEO·메모·첨부 스키마 |
| 2019-12-23 | 54dc82a5d, ffc43056b |
20191223_001_gnuboard_5413_schema |
주문 로그·스크랩·짧은 URL |
| 2023-09-09 | 28bfcea9c |
20230909_001_auth_menu_length |
관리 메뉴 ID 길이 |
| 2024-04-02 | 1e72d7e81 |
20240402_001_primary_keys |
단일 행 테이블 등의 기본키 |
| 2025-08-19 | cb1fadba4 |
20250819_001_sms_table_prefix |
SMS5 테이블 접두어 |
| 2025-09-04 | 66f6a75a1, 7e8eff539 |
20250904_001_marketing_consent |
제거되지 않고 유지된 마케팅 동의 필드 |
| 2026-03-25 | 5054e2463 |
20260325_001_coupon_use_unique |
쿠폰 중복 사용 방지 인덱스 |
| 2026-04-16 | 4d5c59766 |
20260416_001_member_auto_login |
자동 로그인 토큰 테이블 |
| 2026-06-25 | 0301c45f5 |
20260625_001_order_cancel_log |
주문 취소·환불 이력 |
| 2026-07-23 | acdbcfd8b |
20260723_001_inicis_pro |
INIpay PRO 설정·결제 이력 |
| 2026-09-03 | 530140902 |
20260904_001_add_email_certify_minutes |
메일 인증 유효시간 |
2012~2013년에 config_form.php, board_form.php, member_form.php, qa_config.php 등에서 수행하던 보정은 그누보드5 최초 배포 스키마를 형성하는 과정이었다. 이 항목들은 위 연속 패치보다 앞선 기준선이며 현재 install/gnuboard5.sql과 install/gnuboard5shop.sql에 포함된다. 제거 후 설치 스키마에서 누락된 필드는 별도로 대조해 보완했다.
팝빌 알림톡 테이블·설정과 게시판 알림 필드는 7e8eff539에서 기능과 함께 제거됐으므로 현재 목표 스키마에 다시 만들지 않는다. 반면 같은 도입 커밋의 마케팅 동의 필드는 유지돼 별도 마이그레이션으로 남겼다. 데이터 삭제가 필요한 쿠폰 중복 정리는 자동 수행하지 않으며, 중복이 있으면 고유 인덱스 생성 실패를 그대로 보고해 운영자가 데이터를 검토하도록 한다.
초기 이전 작업에서 확인된 복합 ALTER TABLE의 부분 적용 가능성과 누락된 데이터 보정은 20260904_002_reconcile_partial_schema, 20260904_003_backfill_legacy_data에서 보완한다. 두 마이그레이션은 누락 컬럼과 인덱스를 개별 검사하고, 장바구니 배송비·회원 이미지 기본값·콘텐츠 SEO 데이터를 보정하며 SEO 컬럼 길이를 신규 설치 정의와 일치시킨다.