From f6271edfd1edc60c5e99f995d14276ebd56cd334 Mon Sep 17 00:00:00 2001 From: Hwan0518 Date: Fri, 30 Jan 2026 18:08:18 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Flyway=20=EB=A7=88=EC=9D=B4=EA=B7=B8?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=85=98=20=ED=98=B8=ED=99=98=EC=84=B1=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60129__add_trade_item_net_payload_weight.sql | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/resources/db/migration/V20260129__add_trade_item_net_payload_weight.sql b/src/main/resources/db/migration/V20260129__add_trade_item_net_payload_weight.sql index 2291ea0..6248e71 100644 --- a/src/main/resources/db/migration/V20260129__add_trade_item_net_payload_weight.sql +++ b/src/main/resources/db/migration/V20260129__add_trade_item_net_payload_weight.sql @@ -1,7 +1,20 @@ -- 'trade_item'에 '실 거래중량' 추가를 위한 flyway sql -- set column: 'trade_item' 테이블에 'net_payload_weight' 컬럼 추가. 이때 기본적으로 null은 허용 (이미 데이터 존재하므로) -ALTER TABLE trade_item ADD COLUMN IF NOT EXISTS net_payload_weight DECIMAL(19,2); +SET @col_exists = ( + SELECT COUNT(*) + FROM information_schema.columns + WHERE table_schema = DATABASE() + AND table_name = 'trade_item' + AND column_name = 'net_payload_weight' +); +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE trade_item ADD COLUMN net_payload_weight DECIMAL(19,2)', + 'SELECT 1' +); +PREPARE stmt FROM @sql; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; -- backfill: 'trade_item'의 'net_payload_weight' 컬럼에서, null인 값들을 (weight-weight_loss)로 채우기. 이때 weight_loss가 null이면 0으로 계산 -- UPDATE trade_item @@ -9,4 +22,4 @@ SET net_payload_weight = weight - COALESCE(weight_loss, 0) WHERE net_payload_weight IS NULL; -- enforce constraint: backfill 완료 후 net_payload_weight는 항상 값이 존재해야 하므로 NOT NULL 제약을 적용 -ALTER TABLE trade_item MODIFY COLUMN net_payload_weight DECIMAL(19,2) NOT NULL; \ No newline at end of file +ALTER TABLE trade_item MODIFY COLUMN net_payload_weight DECIMAL(19,2) NOT NULL;