Files
TK-BOM-Project/backend/scripts/insert_dummy_jobs.py
Hyungi Ahn ffe4f0f969 feat: jobs 테이블 및 더미 데이터 생성
- PostgreSQL jobs 테이블 스키마 생성
- 더미 프로젝트 데이터 2개 추가 (J24-001, J24-002)
- 엔지니어링 업계 구조 반영 (엔드유저-클라이언트-EPC)
- 가상환경 경로 이슈 해결 방법 문서화
2025-07-15 12:45:35 +09:00

82 lines
3.0 KiB
Python

#!/usr/bin/env python3
import sys
import os
from datetime import datetime, date
# 프로젝트 루트를 Python path에 추가
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
try:
from app.database import engine
from sqlalchemy import text
print("✅ 데이터베이스 연결 성공")
except ImportError as e:
print(f"❌ 임포트 실패: {e}")
sys.exit(1)
def insert_dummy_data():
dummy_jobs = [
{
'job_no': 'J24-001',
'job_name': '울산 SK에너지 정유시설 증설 배관공사',
'client_name': '삼성엔지니어링',
'end_user': 'SK에너지',
'epc_company': '삼성엔지니어링',
'project_site': '울산광역시 온산공단',
'contract_date': '2024-03-15',
'delivery_date': '2024-08-30',
'delivery_terms': 'FOB 울산항',
'description': '정유시설 증설을 위한 배관 자재 공급',
'created_by': 'admin'
},
{
'job_no': 'J24-002',
'job_name': '포스코 광양 제철소 배관 정비공사',
'client_name': '포스코',
'end_user': '포스코',
'epc_company': None,
'project_site': '전남 광양시 포스코 제철소',
'contract_date': '2024-04-02',
'delivery_date': '2024-07-15',
'delivery_terms': 'DDP 광양제철소',
'description': '제철소 정기 정비용 배관 부품',
'created_by': 'admin'
}
]
try:
with engine.connect() as conn:
# 기존 더미 데이터 삭제
conn.execute(text("DELETE FROM jobs WHERE job_no IN ('J24-001', 'J24-002')"))
# 새 데이터 삽입
for job in dummy_jobs:
query = text("""
INSERT INTO jobs (
job_no, job_name, client_name, end_user, epc_company,
project_site, contract_date, delivery_date, delivery_terms,
description, created_by, is_active
) VALUES (
:job_no, :job_name, :client_name, :end_user, :epc_company,
:project_site, :contract_date, :delivery_date, :delivery_terms,
:description, :created_by, :is_active
)
""")
conn.execute(query, {**job, 'is_active': True})
print(f"{job['job_no']}: {job['job_name']}")
conn.commit()
print(f"\n🎉 {len(dummy_jobs)}개 더미 Job 생성 완료!")
# 확인
result = conn.execute(text("SELECT job_no, job_name, client_name FROM jobs"))
for row in result:
print(f"{row[0]}: {row[1]} ({row[2]})")
except Exception as e:
print(f"❌ 오류: {e}")
if __name__ == "__main__":
insert_dummy_data()