#!/usr/bin/env python3 """ 더미 프로젝트 데이터 생성 스크립트 """ import sys import os from datetime import datetime, date from sqlalchemy import create_engine, text # 프로젝트 루트를 Python path에 추가 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) def create_dummy_jobs(): """더미 Job 데이터 생성""" # 간단한 SQLite 연결 (실제 DB 설정에 맞게 수정) try: # 실제 프로젝트의 database.py 설정 사용 from app.database import engine print("✅ 데이터베이스 연결 성공") except ImportError: # 직접 연결 (개발용) DATABASE_URL = "sqlite:///./test.db" # 실제 DB URL로 변경 engine = create_engine(DATABASE_URL) print("⚠️ 직접 데이터베이스 연결") # 더미 데이터 정의 dummy_jobs = [ { 'job_no': 'J24-001', 'job_name': '울산 SK에너지 정유시설 증설 배관공사', 'client_name': '삼성엔지니어링', 'end_user': 'SK에너지', 'epc_company': '삼성엔지니어링', 'project_site': '울산광역시 온산공단 SK에너지 정유공장', 'contract_date': '2024-03-15', 'delivery_date': '2024-08-30', 'delivery_terms': 'FOB 울산항', 'status': '진행중', '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 광양제철소 현장', 'status': '진행중', 'description': '제철소 정기 정비를 위한 배관 부품 교체. 내열성 특수강 배관 포함.', 'created_by': 'admin' } ] try: with engine.connect() as conn: # 기존 더미 데이터 삭제 (개발용) print("🧹 기존 더미 데이터 정리...") conn.execute(text("DELETE FROM jobs WHERE job_no IN ('J24-001', 'J24-002')")) # 새 더미 데이터 삽입 print("📝 더미 데이터 삽입 중...") for job in dummy_jobs: insert_query = text(""" INSERT INTO jobs ( job_no, job_name, client_name, end_user, epc_company, project_site, contract_date, delivery_date, delivery_terms, status, description, created_by, is_active ) VALUES ( :job_no, :job_name, :client_name, :end_user, :epc_company, :project_site, :contract_date, :delivery_date, :delivery_terms, :status, :description, :created_by, :is_active ) """) conn.execute(insert_query, {**job, 'is_active': True}) print(f"✅ {job['job_no']}: {job['job_name']}") # 커밋 conn.commit() # 결과 확인 result = conn.execute(text(""" SELECT job_no, job_name, client_name, status FROM jobs WHERE job_no IN ('J24-001', 'J24-002') """)) jobs = result.fetchall() print(f"\n🎉 총 {len(jobs)}개 더미 Job 생성 완료!") print("\n📋 생성된 더미 데이터:") for job in jobs: print(f" • {job[0]}: {job[1]} ({job[2]}) - {job[3]}") return True except Exception as e: print(f"❌ 더미 데이터 생성 실패: {e}") return False if __name__ == "__main__": create_dummy_jobs()