- PostgreSQL jobs 테이블 스키마 생성 - 더미 프로젝트 데이터 2개 추가 (J24-001, J24-002) - 엔지니어링 업계 구조 반영 (엔드유저-클라이언트-EPC) - 가상환경 경로 이슈 해결 방법 문서화
109 lines
4.1 KiB
Python
109 lines
4.1 KiB
Python
#!/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()
|