데이터 이관 확인 - 전 도메인

현행(WooCommerce) → 신규(PostgreSQL) 이관을 전 영역으로 대사합니다. 범위: 표본(상품 5종 + 참조 주문/회원/리뷰/배차/포인트).

세는 방법 - 아래 모든 숫자는 현행 DB와 신규 DB를 각각 쿼리로 직접 집계한 값입니다. 각 항목의 ‘집계 쿼리 보기’를 펼치면 쓰인 쿼리를 확인할 수 있고, 귀사 DB에서 그대로 재현 가능합니다. ‘현행’은 migration_map(현행↔신규 1:1 추적) 또는 소스 직접 집계 기준입니다.

건수 대사

상품현행 5→신규 5✓ 일치
집계 쿼리 보기
현행 · WooCommerce
-- 현행→신규 1:1 추적(migration_map)으로 집계
SELECT count(*) FROM migration_map
WHERE target_table = 'products';
신규 · PostgreSQL
SELECT count(*) FROM products;
옵션 그룹현행 -→신규 35표본 전수
집계 쿼리 보기
현행 · WooCommerce
-- 현행 _kte_attributes(직렬화) 역직렬화한
--  '옵션 축' 수 (표본 5상품)
신규 · PostgreSQL
SELECT count(*) FROM option_groups;
옵션 항목현행 -→신규 111표본 전수
집계 쿼리 보기
현행 · WooCommerce
-- 현행 _kte_attributes 내 옵션 항목 수
신규 · PostgreSQL
SELECT count(*) FROM option_items;
가격 규칙(변형)현행 152→신규 152✓ 일치
집계 쿼리 보기
현행 · WooCommerce
SELECT count(*) FROM migration_map
WHERE target_table = 'price_rules';   -- 현행 kte_variation ↔ 신규 price_rules
신규 · PostgreSQL
SELECT count(*) FROM price_rules;
주문현행 48→신규 48✓ 일치
집계 쿼리 보기
현행 · WooCommerce
SELECT count(*) FROM migration_map
WHERE target_table = 'orders';
신규 · PostgreSQL
SELECT count(*) FROM orders;
주문 항목현행 129→신규 129✓ 일치
집계 쿼리 보기
현행 · WooCommerce
-- 이관 주문의 라인아이템 + 수수료(fee)
SELECT count(*) FROM wp_woocommerce_order_items
WHERE order_item_type IN ('line_item','fee')
  AND order_id IN (이관된 주문 id들);
신규 · PostgreSQL
SELECT count(*) FROM order_items;
환불현행 -→신규 4표본 전수
집계 쿼리 보기
현행 · WooCommerce
-- 현행 주문 환불 레코드 (표본)
신규 · PostgreSQL
SELECT count(*) FROM order_refunds;
회원현행 34→신규 34✓ 일치
집계 쿼리 보기
현행 · WooCommerce
SELECT count(*) FROM migration_map
WHERE target_table = 'users';
신규 · PostgreSQL
SELECT count(*) FROM users;
소셜 로그인(연결)현행 -→신규 18표본 전수
파트너현행 10→신규 10✓ 일치
집계 쿼리 보기
현행 · WooCommerce
SELECT count(*) FROM migration_map
WHERE target_table = 'partners';
신규 · PostgreSQL
SELECT count(*) FROM partners;
리뷰현행 -→신규 126표본 전수
집계 쿼리 보기
현행 · WooCommerce
-- 표본 5상품 리뷰 (review+comment 최상위)
SELECT count(*) FROM wp_comments
WHERE comment_post_ID IN (표본 상품)
  AND comment_type IN ('review','comment')
  AND comment_approved = 1 AND comment_parent = 0;
신규 · PostgreSQL
SELECT count(*) FROM reviews;
기사 배차현행 -→신규 29표본 전수
집계 쿼리 보기
현행 · WooCommerce
-- 현행 driver-schedule (입금가 배차)
신규 · PostgreSQL
SELECT count(*) FROM driver_dispatches;
포인트 잔액(회원)현행 -→신규 15표본 전수
집계 쿼리 보기
현행 · WooCommerce
-- 현행 usermeta 포인트 잔액 보유 회원
신규 · PostgreSQL
SELECT count(*) FROM point_balances;
포인트 거래로그현행 -→신규 126표본 전수
집계 쿼리 보기
현행 · WooCommerce
-- 현행 포인트 적립/사용 로그 (표본 회원)
신규 · PostgreSQL
SELECT count(*) FROM point_transactions;

금액 대사

주문 판매 합계 (USD)현행 25,085.8825,085.88✓ 일치
집계 쿼리 보기
현행 · WooCommerce
SELECT sum(total_amount) FROM wp_wc_orders
WHERE id IN (이관된 주문 id들);
신규 · PostgreSQL
SELECT sum(total_sell_amount) FROM orders;
기사 배차 입금가 합계 (KRW)4,765,500
집계 쿼리 보기
현행 · WooCommerce
-- 현행 배차 정산액 (KRW)
신규 · PostgreSQL
SELECT sum(cost_amount) FROM driver_dispatches;

추적 · 무결성

migration_map (현행↔신규 1:1)
249건
미해결 오류 (error)
0
경고 (warn)
0
정보 (info)
4
이관 대상별 추적: users 34partners 10price_rules 152orders 48products 5
추적·이슈 쿼리 보기
현행 · WooCommerce
-- 현행 레코드 ↔ 신규 레코드 매핑(한 건도 안 흘림)
SELECT target_table, count(*)
FROM migration_map GROUP BY target_table;
신규 · PostgreSQL
-- 변환 중 버린/판단 건은 전수 기록
SELECT severity, count(*)
FROM migration_issues GROUP BY severity;

버리는 데이터는 전수 기록(조용히 버리지 않음). 현행 데이터 기준 미해결 오류 0 · 경고 0 · 정보성 4건.

포인트 적립일 보존 (RFP - 잔액만 이관 금지)

거래로그 126/126건이 적립일(occurred_at)을 보존 - 범위 2016-10-16 ~ 2026-09-16. 각 행의 ‘현행 원본’은 해당 포인트를 보유한 회원의 귀사 관리자 프로필로 연결됩니다(WooCommerce 포인트 로그는 회원 단위로 열람).

적립일 보존 쿼리 보기
현행 · WooCommerce
-- 현행: 포인트 로그에 적립 일자 존재 여부
신규 · PostgreSQL
SELECT count(*) FILTER (WHERE occurred_at IS NOT NULL) 보존,
       count(*) 전체, min(occurred_at), max(occurred_at)
FROM point_transactions;
회원증감사유적립일현행 원본
U#418+200extra-information-regist2016-10-16회원 원본 ↗
U#415+384order-placed2016-11-02회원 원본 ↗
U#415+1,279order-placed2017-11-30회원 원본 ↗
U#415+20product-review2017-12-25회원 원본 ↗
U#407+200extra-information-regist2018-01-25회원 원본 ↗
U#407+250order-placed2018-01-29회원 원본 ↗

회원 이관 - 전원 대조 (34명 · 개인정보 마스킹)

필드 매핑 + 포인트 잔액·첫 적립일 + 비밀번호 해시 알고리즘 + 소셜 로그인 연결 보존 확인. 각 행의 ‘현행 원본’은 귀사 WordPress 관리자의 해당 회원 편집화면으로 바로 이동합니다 - 우리 화면이 아니라 귀사 시스템의 원본과 직접 대조하실 수 있습니다.

※ 링크는 https://lob.ktelab.com/wp-admin/user-edit.php?user_id=… 로 연결됩니다. 로그인 상태가 아니면 관리자 로그인 후 해당 회원으로 이동합니다.
조회 쿼리 보기
현행 · WooCommerce
-- 현행: wp_users + wp_usermeta(잔액·포인트)
--   소셜: _wc_social_login_{google|facebook}_identifier
신규 · PostgreSQL
SELECT u.legacy_wp_id, u.name, u.email, u.nationality,
       u.password_algo, b.balance,
       (SELECT array_agg(provider) FROM user_social_identities s
          WHERE s.user_id = u.id) social
FROM users u LEFT JOIN point_balances b ON b.user_id = u.id;
※ 소셜 로그인은 예외입니다 - 현행 어드민의 ‘Connected Social Profiles’ 섹션이 레거시 키를 읽지 못해 빈칸으로 표시되므로, 소셜만은 아래 SQL로 귀사 DB에서 직접 대조하세요(데이터는 usermeta에 보존됨).
소셜 로그인 검증 쿼리 보기
현행 · WooCommerce
-- 현행(귀사 WP DB) - 어드민 UI 대신 usermeta 직접 조회
-- ① 전체 규모
SELECT SUM(meta_key='_wc_social_login_google_identifier')   google,
       SUM(meta_key='_wc_social_login_facebook_identifier') facebook
FROM wp_usermeta;

-- ② 특정 회원(예: 2253)
SELECT MAX(CASE WHEN meta_key LIKE '%_facebook_identifier'
                THEN meta_value END) fb_id
FROM wp_usermeta WHERE user_id = 2253;
신규 · PostgreSQL
-- 신규: 이관된 소셜 연결 전건
SELECT u.legacy_wp_id, s.provider, s.provider_uid,
       s.last_social_login_at
FROM user_social_identities s
JOIN users u ON u.id = s.user_id
ORDER BY u.legacy_wp_id;
현행 ID이름이메일국적해시소셜포인트 잔액첫 적립일현행 원본
#446M*************us***@masked.local-phpass-1,7762016-11-02원본 보기 ↗
#4550M**************us***@masked.localMYphpass-9142018-08-17원본 보기 ↗
#2253M**************us***@masked.localUSphpassFacebook2712018-02-18원본 보기 ↗
#3661M**************us***@masked.localCNphpass-2202018-06-13원본 보기 ↗
#2201M**************us***@masked.localUSphpass-2162018-02-06원본 보기 ↗
#2405M**************us***@masked.localPHphpass-2112018-03-14원본 보기 ↗
#4192M**************us***@masked.localSGphpassGoogle2012018-07-16원본 보기 ↗
#3334M**************us***@masked.localIDphpass-2012018-05-22원본 보기 ↗
#3359M**************us***@masked.localUSphpass-2012018-05-23원본 보기 ↗
#2910M**************us***@masked.localMYphpassFacebook2002018-04-18원본 보기 ↗
#4057M**************us***@masked.localSGphpassFacebook1672018-07-05원본 보기 ↗
#2164M**************us***@masked.localSGphpass-212018-01-29원본 보기 ↗
#428M*************us***@masked.localPHphpassFacebook212016-10-16원본 보기 ↗
#8666M**************us***@masked.localBNphpassGoogle212019-08-08원본 보기 ↗
#2140M**************us***@masked.localINphpass-162018-01-25원본 보기 ↗
#45712M***************us***@masked.local-phpassGoogle-2026-09-15원본 보기 ↗
#45716M***************us***@masked.localPHphpassGoogle-2026-09-15원본 보기 ↗
#42961M***************us***@masked.local-phpassFacebook-2026-05-18원본 보기 ↗
#45727M***************us***@masked.localAUphpassGoogle-2026-09-16원본 보기 ↗
#45736M***************us***@masked.local-phpassGoogle-2026-09-16원본 보기 ↗
#41407M***************us***@masked.localSGphpassGoogle-2025-12-04원본 보기 ↗
#41503M***************us***@masked.local-phpassGoogle-2025-12-07원본 보기 ↗
#41637M***************us***@masked.localMYphpassGoogle-2025-12-15원본 보기 ↗
#38333M***************us***@masked.local-phpass---원본 보기 ↗
#26635M***************us***@masked.localPHphpass--2024-05-09원본 보기 ↗
#45146M***************us***@masked.localSGphpass--2026-07-27원본 보기 ↗
#45156M***************us***@masked.localPKphpass--2026-07-27원본 보기 ↗
#45196M***************us***@masked.local-phpass--2026-08-01원본 보기 ↗
#42519M***************us***@masked.local-phpass--2026-02-06원본 보기 ↗
#45322M***************us***@masked.local-phpassGoogle-2026-08-12원본 보기 ↗
#45504M***************us***@masked.local-phpassGoogle-2026-08-27원본 보기 ↗
#45616M***************us***@masked.localUSphpass--2026-09-07원본 보기 ↗
#45701M***************us***@masked.local-phpassGoogle-2026-09-15원본 보기 ↗
#45711M***************us***@masked.local-phpassGoogle-2026-09-15원본 보기 ↗