From fd1f8a0cb1f52134ede14f2003445af7f3a3dd6a Mon Sep 17 00:00:00 2001 From: pooreumjung Date: Fri, 29 May 2026 12:22:28 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=EC=9A=B4=EB=8F=99=20=EC=9C=A0?= =?UTF-8?q?=ED=98=95=20=EC=A0=9C=EC=95=BD=20=EC=A1=B0=EA=B1=B4=20=EA=B0=B1?= =?UTF-8?q?=EC=8B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...te_user_onboarding_exercise_type_check.sql | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/main/resources/db/migration/V25__update_user_onboarding_exercise_type_check.sql diff --git a/src/main/resources/db/migration/V25__update_user_onboarding_exercise_type_check.sql b/src/main/resources/db/migration/V25__update_user_onboarding_exercise_type_check.sql new file mode 100644 index 0000000..2519ee7 --- /dev/null +++ b/src/main/resources/db/migration/V25__update_user_onboarding_exercise_type_check.sql @@ -0,0 +1,38 @@ +-- ===================================================================== +-- V25__update_user_onboarding_exercise_type_check.sql +-- 목적: user_onboardings.exercise_type CHECK 제약을 현재 ExerciseType enum과 맞춘다. +-- 배경: 기존 DB 제약은 CARDIO, PILATES, YOGA, WALKING_HIKING를 허용하지만 +-- 현재 enum은 WALKING, RUNNING, PILATES_YOGA, HIKING를 사용한다. +-- 신규 enum 값 저장 시 UPDATE/INSERT가 실패하지 않도록 기존 데이터를 변환한다. +-- 멱등: UPDATE 후 DROP IF EXISTS -> ADD 패턴. +-- ===================================================================== + +UPDATE user_onboardings +SET exercise_type = 'WALKING' +WHERE exercise_type = 'CARDIO'; + +UPDATE user_onboardings +SET exercise_type = 'PILATES_YOGA' +WHERE exercise_type IN ('PILATES', 'YOGA'); + +UPDATE user_onboardings +SET exercise_type = 'HIKING' +WHERE exercise_type = 'WALKING_HIKING'; + +ALTER TABLE user_onboardings + DROP CONSTRAINT IF EXISTS user_onboardings_exercise_type_check; + +ALTER TABLE user_onboardings + ADD CONSTRAINT user_onboardings_exercise_type_check + CHECK (exercise_type IN ( + 'GYM', + 'HOME_TRAINING', + 'PILATES_YOGA', + 'WALKING', + 'RUNNING', + 'HIKING', + 'SPORTS', + 'CROSSFIT', + 'SWIMMING', + 'NONE' + )); From 069846ea3bf6d6341539e3ac92d19a60bb2473ea Mon Sep 17 00:00:00 2001 From: pooreumjung Date: Fri, 29 May 2026 12:57:49 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=EC=9A=B4=EB=8F=99=20=EC=9C=A0?= =?UTF-8?q?=ED=98=95=20=EB=A7=88=EC=9D=B4=EA=B7=B8=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=85=98=20=EC=A0=9C=EC=95=BD=20=EC=88=9C=EC=84=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V25__update_user_onboarding_exercise_type_check.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/resources/db/migration/V25__update_user_onboarding_exercise_type_check.sql b/src/main/resources/db/migration/V25__update_user_onboarding_exercise_type_check.sql index 2519ee7..c2a2bc4 100644 --- a/src/main/resources/db/migration/V25__update_user_onboarding_exercise_type_check.sql +++ b/src/main/resources/db/migration/V25__update_user_onboarding_exercise_type_check.sql @@ -4,9 +4,12 @@ -- 배경: 기존 DB 제약은 CARDIO, PILATES, YOGA, WALKING_HIKING를 허용하지만 -- 현재 enum은 WALKING, RUNNING, PILATES_YOGA, HIKING를 사용한다. -- 신규 enum 값 저장 시 UPDATE/INSERT가 실패하지 않도록 기존 데이터를 변환한다. --- 멱등: UPDATE 후 DROP IF EXISTS -> ADD 패턴. +-- 멱등: DROP IF EXISTS -> UPDATE -> ADD 패턴. -- ===================================================================== +ALTER TABLE user_onboardings + DROP CONSTRAINT IF EXISTS user_onboardings_exercise_type_check; + UPDATE user_onboardings SET exercise_type = 'WALKING' WHERE exercise_type = 'CARDIO'; @@ -19,9 +22,6 @@ UPDATE user_onboardings SET exercise_type = 'HIKING' WHERE exercise_type = 'WALKING_HIKING'; -ALTER TABLE user_onboardings - DROP CONSTRAINT IF EXISTS user_onboardings_exercise_type_check; - ALTER TABLE user_onboardings ADD CONSTRAINT user_onboardings_exercise_type_check CHECK (exercise_type IN (