fix(scripts): SQLAlchemy 트랜잭션 에러 수정

autobegin 상태에서 begin() 재호출 에러 → engine.begin() 컨텍스트 매니저로 변경.
189건 PostgreSQL weight_min_kg/weight_max_kg 업데이트 완료.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
thug0bin 2026-03-08 18:14:39 +09:00
parent 2ef418ed7c
commit f92abf94c8

View File

@ -524,23 +524,20 @@ def main():
# ── DB 업데이트 ──
if not dry_run and updates:
print(f'\n DB 업데이트 시작...')
tx = conn.begin()
try:
conn.close()
with pg.begin() as tx_conn:
for apc_code, wmin, wmax, _, _ in updates:
conn.execute(text('''
tx_conn.execute(text('''
UPDATE apc
SET weight_min_kg = :wmin, weight_max_kg = :wmax
WHERE apc = :apc
'''), {'wmin': wmin, 'wmax': wmax, 'apc': apc_code})
tx.commit()
print(f' 완료: {len(updates)}건 업데이트')
except Exception as e:
tx.rollback()
print(f' 오류 발생, 롤백: {e}')
print(f' 완료: {len(updates)}건 업데이트')
elif not dry_run and not updates:
print('\n 업데이트할 항목이 없습니다.')
conn.close()
conn.close()
else:
conn.close()
print('\n완료.')