Files
Gnuboard5/docs/database-migration-history.md
T
whitedot 5bdbf360b0 refactor: 일반 실행 경로의 DB 변경을 버전형 마이그레이션으로 이전
과거 누적 DDL과 데이터 보정을 시점별 SQL로 분리하고 관리자·CLI 실행기를 제공한다. 실행 순서, 잠금, 체크섬, 성공·실패 이력 및 개별 실행의 선행 조건을 검증한다.

기존 스키마의 부분 적용 복구와 설치 SQL 정합성 검사를 추가하고 실행·복구 절차를 문서화한다.
2026-09-09 07:58:05 +00:00

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 컬럼 길이를 신규 설치 정의와 일치시킨다.