fix(migration 026): menu_info 에 unique constraint 없어 ON CONFLICT 실패 → WHERE NOT EXISTS + UPDATE 분리
Deploy momo-erp / deploy (push) Successful in 2m10s
Deploy momo-erp / deploy (push) Successful in 2m10s
지난 commit 의 026 이 ON CONFLICT(objid) 로 INSERT 시도 → menu_info 에 PK/unique 없어 PG 에러. 패턴: INSERT WHERE NOT EXISTS + 그 다음 별도 UPDATE WHERE objid=... 로 idempotent 처리. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,19 +1,35 @@
|
||||
-- FITO menu_info 에 매입 입금관리 + 재고이력 메뉴 추가 (사이드바에 노출되도록)
|
||||
-- FITO menu_info 에 매입 입금관리 + 재고이력 메뉴 추가 (사이드바 노출용)
|
||||
-- 부모: 9000300 매입/입고
|
||||
-- menu_info 는 unique constraint 없음 → WHERE NOT EXISTS 로 idempotent 처리
|
||||
|
||||
-- 기존 seq 재정렬
|
||||
UPDATE menu_info SET seq = '12' WHERE objid = '9000302'; -- 입고 처리: 11→12
|
||||
UPDATE menu_info SET seq = '13' WHERE objid = '9000303'; -- 재고 관리: 12→13
|
||||
-- 기존 seq 재정렬 (안전하게 update)
|
||||
UPDATE menu_info SET seq = '12' WHERE objid = '9000302' AND seq != '12';
|
||||
UPDATE menu_info SET seq = '13' WHERE objid = '9000303' AND seq != '13';
|
||||
|
||||
-- 매입 입금관리 (seq 11) + 재고이력 (seq 14) — idempotent
|
||||
-- 9000304 매입 입금관리
|
||||
INSERT INTO menu_info (objid, menu_type, parent_obj_id, menu_name_kor, menu_name_eng, seq, menu_url, status, system_name, regdate)
|
||||
VALUES
|
||||
('9000304', '1', '9000300', '매입 입금관리', 'Proc Payment', '11', '/m/admin/proc-payments', 'active', 'PMS', NOW()),
|
||||
('9000305', '1', '9000300', '재고이력', 'Stock History', '14', '/m/admin/inventory/history', 'active', 'PMS', NOW())
|
||||
ON CONFLICT (objid) DO UPDATE SET
|
||||
menu_name_kor = EXCLUDED.menu_name_kor,
|
||||
menu_name_eng = EXCLUDED.menu_name_eng,
|
||||
seq = EXCLUDED.seq,
|
||||
menu_url = EXCLUDED.menu_url,
|
||||
status = 'active',
|
||||
system_name = EXCLUDED.system_name;
|
||||
SELECT '9000304', '1', '9000300', '매입 입금관리', 'Proc Payment', '11', '/m/admin/proc-payments', 'active', 'PMS', NOW()
|
||||
WHERE NOT EXISTS (SELECT 1 FROM menu_info WHERE objid = '9000304');
|
||||
|
||||
UPDATE menu_info SET
|
||||
menu_name_kor = '매입 입금관리',
|
||||
menu_name_eng = 'Proc Payment',
|
||||
parent_obj_id = '9000300',
|
||||
seq = '11',
|
||||
menu_url = '/m/admin/proc-payments',
|
||||
status = 'active'
|
||||
WHERE objid = '9000304';
|
||||
|
||||
-- 9000305 재고이력
|
||||
INSERT INTO menu_info (objid, menu_type, parent_obj_id, menu_name_kor, menu_name_eng, seq, menu_url, status, system_name, regdate)
|
||||
SELECT '9000305', '1', '9000300', '재고이력', 'Stock History', '14', '/m/admin/inventory/history', 'active', 'PMS', NOW()
|
||||
WHERE NOT EXISTS (SELECT 1 FROM menu_info WHERE objid = '9000305');
|
||||
|
||||
UPDATE menu_info SET
|
||||
menu_name_kor = '재고이력',
|
||||
menu_name_eng = 'Stock History',
|
||||
parent_obj_id = '9000300',
|
||||
seq = '14',
|
||||
menu_url = '/m/admin/inventory/history',
|
||||
status = 'active'
|
||||
WHERE objid = '9000305';
|
||||
|
||||
Reference in New Issue
Block a user