From 9ddced268f331c998b74ee8ef5bd57c7cfc376f7 Mon Sep 17 00:00:00 2001 From: king Date: Tue, 1 Sep 2026 11:55:09 +0900 Subject: [PATCH] =?UTF-8?q?chore(cupang):=20=EC=A0=9C=ED=92=88=2039?= =?UTF-8?q?=EA=B1=B4=20=EC=BF=A0=ED=8C=A1=EC=83=81=ED=92=88=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=8B=9C=EB=93=9C=20=EC=8A=A4=ED=81=AC=EB=A6=BD?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용자 제공 (쿠팡상품코드, 제품코드) 매핑을 cupang_products.coupang_item_code 에 반영. product_code 정확 일치 행만 UPDATE, 변경 전 값은 _cpg_code_seed_backup 에 백업. cupang_products 에 없는 제품코드는 "미등록" 목록으로 출력만 하고 INSERT 하지 않는다. Co-Authored-By: Claude Opus 5 --- .../sql/cupang_products_coupang_code_seed.sql | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 scripts/sql/cupang_products_coupang_code_seed.sql diff --git a/scripts/sql/cupang_products_coupang_code_seed.sql b/scripts/sql/cupang_products_coupang_code_seed.sql new file mode 100644 index 0000000..41eaab1 --- /dev/null +++ b/scripts/sql/cupang_products_coupang_code_seed.sql @@ -0,0 +1,99 @@ +-- ===================================================================== +-- cupang_db 시드 — 등록된 제품에 쿠팡상품코드 채우기 +-- ===================================================================== +-- 사유: 사용자가 전달한 (쿠팡상품코드, 제품코드) 매핑 39건을 +-- cupang_products.coupang_item_code 에 반영한다. +-- +-- 선행: scripts/sql/cupang_db_004_product_coupang_item_code.sql 적용 필요. +-- +-- 안전: product_code 가 정확히 일치하는 행만 UPDATE 한다. +-- (조건 없는 대량 UPDATE 아님. 삭제/DROP 없음) +-- 실행 전 현재 값을 _cpg_code_seed_backup 테이블에 남긴다. +-- 목록에 없는 제품은 건드리지 않는다. +-- +-- 실행: +-- docker exec -i postgres-db psql -U postgres -d cupang_db < /opt/www/main/scripts/sql/cupang_products_coupang_code_seed.sql +-- +-- 되돌리기(백업 테이블이 남아 있을 때): +-- UPDATE cupang_products p SET coupang_item_code = b.old_code +-- FROM _cpg_code_seed_backup b WHERE b.id = p.id; +-- ===================================================================== + +\set ON_ERROR_STOP on +\connect cupang_db + +BEGIN; + +CREATE TEMP TABLE _cpg_seed (coupang_item_code TEXT, product_code TEXT); + +INSERT INTO _cpg_seed (coupang_item_code, product_code) VALUES + ('49479995', 'MT-0550'), + ('50327973', 'MS-9804'), + ('50355373', 'MS-9805'), + ('49312846', 'MS-9801'), + ('53004902', 'MS-9806'), + ('50395783', 'MS-9807'), + ('49479996', 'MT-1800'), + ('50327252', 'MS-9808'), + ('50356405', 'MS-9809'), + ('53027684', 'MS-9810'), + ('50337606', 'MS-9811'), + ('49479994', 'MT-3200'), + ('49312847', 'MS-9802'), + ('50850925', 'MS-9812'), + ('50850844', 'MS-9813'), + ('50848682', 'MS-9814'), + ('50848226', 'MS-9815'), + ('50849135', 'MS-9816'), + ('50886294', 'MS-9817'), + ('51111880', 'MS-9818'), + ('51294736', 'MT-4000'), + ('51294128', 'MT-4000_3'), + ('51296157', 'MT-4000_5'), + ('51865475', 'MZ-0001'), + ('51865928', 'MZ-0002'), + ('52595565', 'MT-0001'), + ('52587168', 'MT-0001_3'), + ('52594262', 'MT-0001_5'), + ('56562621', 'MS-1001'), + ('56560732', 'MS-1002'), + ('56561595', 'MS-1003'), + ('56562059', 'MS-1004'), + ('56566081', 'MS-1005'), + ('56297162', 'MS-1006'), + ('56297353', 'MS-1007'), + ('65370605', 'MT-5000_2'), + ('65369886', 'MT-5000_4'), + ('65370933', 'MT-7000_2'), + ('65371251', 'MW-7000_2'); + +-- 변경 전 값 백업 (되돌리기용, 남겨둔다) +DROP TABLE IF EXISTS _cpg_code_seed_backup; +CREATE TABLE _cpg_code_seed_backup AS +SELECT p.id, p.product_code, p.coupang_item_code AS old_code, now() AS backed_up_at + FROM cupang_products p + JOIN _cpg_seed s ON s.product_code = p.product_code; + +UPDATE cupang_products p + SET coupang_item_code = s.coupang_item_code + FROM _cpg_seed s + WHERE p.product_code = s.product_code + AND p.coupang_item_code IS DISTINCT FROM s.coupang_item_code; + +-- 반영 결과 +SELECT count(*) AS "매칭된 제품 수" + FROM cupang_products p JOIN _cpg_seed s ON s.product_code = p.product_code; + +-- cupang_products 에 없는 제품코드 (등록 안 된 항목 → 설정 화면에서 먼저 등록 필요) +SELECT s.product_code AS "미등록 제품코드", s.coupang_item_code AS "쿠팡상품코드" + FROM _cpg_seed s + WHERE NOT EXISTS ( + SELECT 1 FROM cupang_products p WHERE p.product_code = s.product_code) + ORDER BY s.product_code; + +COMMIT; + +SELECT product_code, product_name, coupang_item_code + FROM cupang_products + WHERE coupang_item_code <> '' + ORDER BY product_code;