chore(orders): 옛 발주 데이터 1회성 삭제 (마이그레이션 031)
Deploy momo-erp / deploy (push) Successful in 2m19s

사용자 명시 요청 — supplier snapshot 이전의 옛 발주 데이터를 통째로
비우고 신규 발주만 운용. 사용자가 새로 등록하기로 함.

⚠️ migrate-momo.mjs 가 매 deploy 시 모든 .sql 을 재실행하므로 raw DELETE
를 그대로 박으면 신규 발주가 다음 deploy 때 또 지워지는 사고가 남.
→ sentinel 테이블 momo_migration_marks 도입, 1회만 실행되도록 가드.

삭제 범위:
- momo_einvoice_items (발주연결분)
- momo_einvoices WHERE order_objid IS NOT NULL
- momo_stock_moves WHERE ref_type='ORDER'
- momo_order_items 전체
- momo_orders 전체

보존: momo_stocks.qty — 사용자가 inventory 메뉴에서 직접 보정.
This commit is contained in:
chpark
2026-05-13 17:44:03 +09:00
parent 0bfe85dc69
commit 94fc425ef3
+37
View File
@@ -0,0 +1,37 @@
-- 옛 발주 전체 삭제 (사용자 명시 요청 2026-05-13)
-- ⚠️ migrate-momo.mjs 는 매 deploy 시 모든 .sql 을 재실행 → DELETE 가 매번 실행되면
-- 신규 발주가 다음 deploy 때 또 지워지는 사고가 남.
-- → sentinel 테이블 momo_migration_marks 로 1회만 실행 보장.
--
-- 삭제 범위:
-- 1) momo_einvoice_items (발주연결 세금계산서의 라인)
-- 2) momo_einvoices (order_objid IS NOT NULL — 발주 연결분만)
-- 3) momo_stock_moves (ref_type='ORDER' — 출고 차감 이력)
-- 4) momo_order_items (발주 라인)
-- 5) momo_orders (발주 본체)
--
-- 보존: momo_stocks.qty (현재고는 그대로 — 사용자가 inventory 메뉴에서 직접 보정).
CREATE TABLE IF NOT EXISTS momo_migration_marks (
mark VARCHAR(100) PRIMARY KEY,
regdate TIMESTAMP DEFAULT NOW()
);
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM momo_migration_marks WHERE mark = '031_orders_wipe_legacy') THEN
DELETE FROM momo_einvoice_items
WHERE einvoice_objid IN (
SELECT objid FROM momo_einvoices WHERE order_objid IS NOT NULL
);
DELETE FROM momo_einvoices WHERE order_objid IS NOT NULL;
DELETE FROM momo_stock_moves WHERE ref_type = 'ORDER';
DELETE FROM momo_order_items;
DELETE FROM momo_orders;
INSERT INTO momo_migration_marks(mark) VALUES ('031_orders_wipe_legacy');
RAISE NOTICE '[031] 옛 발주 전체 삭제 완료';
END IF;
END $$;