chore(cupang): 제품 39건 쿠팡상품코드 시드 스크립트

사용자 제공 (쿠팡상품코드, 제품코드) 매핑을 cupang_products.coupang_item_code
에 반영. product_code 정확 일치 행만 UPDATE, 변경 전 값은
_cpg_code_seed_backup 에 백업. cupang_products 에 없는 제품코드는
"미등록" 목록으로 출력만 하고 INSERT 하지 않는다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-01 11:55:09 +09:00
parent bf3407b6ec
commit 9ddced268f
@@ -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;