From c3af696cae5a76498f6bd38d94637fcb4ca7c6bd Mon Sep 17 00:00:00 2001 From: zenn Date: Wed, 1 Apr 2026 17:53:02 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A6=B4=EB=A6=AC=EC=8A=A4:=20v1.3.42=20?= =?UTF-8?q?=ED=85=9C=ED=94=8C=EB=A6=BF=20=EC=9A=94=EC=B2=AD=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5=20=EB=B6=84=EA=B8=B0=20=ED=98=B8=ED=99=98=20=EB=B3=B4?= =?UTF-8?q?=EA=B0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/db.js | 2 ++ docs/todo.md | 2 +- docs/update.md | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/backend/src/db.js b/backend/src/db.js index df74e29..53c57e7 100644 --- a/backend/src/db.js +++ b/backend/src/db.js @@ -443,6 +443,8 @@ async function ensureSchema() { const tierListSourceIdColumns = await query("SHOW COLUMNS FROM tierlists LIKE 'source_tierlist_id'") if (!tierListSourceIdColumns.length) { await query("ALTER TABLE tierlists ADD COLUMN source_tierlist_id VARCHAR(64) NULL DEFAULT NULL AFTER show_character_names") + } else if (tierListSourceIdColumns[0]?.Null !== 'YES') { + await query('ALTER TABLE tierlists MODIFY source_tierlist_id VARCHAR(64) NULL DEFAULT NULL') } const tierListSourceTitleColumns = await query("SHOW COLUMNS FROM tierlists LIKE 'source_snapshot_title'") if (!tierListSourceTitleColumns.length) { diff --git a/docs/todo.md b/docs/todo.md index 5ee0046..9b0e928 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -20,4 +20,4 @@ - 가이드 모달과 관리자 아이템 모달은 현재 같은 톤의 큰 셸을 쓰므로, 이후 공통 모달 레이아웃 컴포넌트로 분리할지 검토한다. - 관리자 아이템 라이브러리 이름 변경은 템플릿·사용자 업로드·보관 자산까지 모두 가능하므로, 이후에는 일괄 이름 정리나 중복 이름 감지 보조 기능까지 검토한다. -- 템플릿 요청 500 오류 대응으로 `template_requests` 레거시 컬럼 자동 마이그레이션은 반영했으므로, 이후에는 실제 운영 DB에서 재시작 후 요청/승인 흐름을 한 번 더 확인한다. +- 템플릿 요청 500 오류 대응으로 `template_requests`와 `tierlists` 레거시 컬럼 자동 마이그레이션은 반영했으므로, 이후에는 실제 운영 DB에서 백엔드 재시작 후 요청/승인 흐름을 한 번 더 확인한다. diff --git a/docs/update.md b/docs/update.md index dae4398..fcca865 100644 --- a/docs/update.md +++ b/docs/update.md @@ -1,5 +1,9 @@ # 업데이트 로그 +## 2026-04-01 v1.3.42 +- 템플릿 요청 시 `내 티어리스트에도 저장`이 켜져 있을 때만 500 오류가 날 수 있던 레거시 `tierlists.source_tierlist_id` nullability 문제도 함께 보강해, 오래된 DB 스키마에서도 요청 전 저장 흐름이 막히지 않도록 정리함. +- 따라서 템플릿 요청 관련 레거시 호환 보정은 `template_requests`와 `tierlists` 양쪽에 모두 반영됐고, 실제 적용을 위해서는 백엔드 재시작 후 재확인이 필요함. + ## 2026-04-01 v1.3.41 - 템플릿 요청 등록 시 500 오류가 날 수 있던 레거시 DB 호환 문제를 보강해, 기존 `template_requests` 테이블에 `request_type`, `source_game_id`, `target_game_id`, `status` 컬럼이 빠져 있어도 서버 시작 시 자동으로 마이그레이션되도록 함. - 따라서 저장 여부와 무관하게 템플릿 요청 흐름은 유지되고, 구버전 DB를 사용 중이더라도 백엔드 재시작 후 같은 요청이 정상 저장되도록 안정성을 높임.