Add waiting system application files
- Add main application files (main.py, models.py, schemas.py, etc.) - Add routers for all features (waiting, attendance, members, etc.) - Add HTML templates for admin and user interfaces - Add migration scripts and utility files - Add Docker configuration - Add documentation files - Add .gitignore to exclude database and cache files 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
74
migrate_update_store_names.py
Normal file
74
migrate_update_store_names.py
Normal file
@@ -0,0 +1,74 @@
|
||||
"""
|
||||
매장 이름을 실제 상호로 업데이트하는 마이그레이션
|
||||
- "1호점", "2호점" 등을 실제 매장 상호로 변경
|
||||
"""
|
||||
|
||||
from datetime import datetime
|
||||
from database import SessionLocal
|
||||
from models import Store, Franchise
|
||||
|
||||
def main():
|
||||
db = SessionLocal()
|
||||
|
||||
try:
|
||||
# 모든 매장 조회
|
||||
stores = db.query(Store).all()
|
||||
|
||||
if not stores:
|
||||
print("✓ 업데이트할 매장이 없습니다.")
|
||||
return
|
||||
|
||||
print(f"총 {len(stores)}개 매장을 확인합니다...\n")
|
||||
|
||||
updated_count = 0
|
||||
for store in stores:
|
||||
# 프랜차이즈 정보 가져오기
|
||||
franchise = db.query(Franchise).filter(Franchise.id == store.franchise_id).first()
|
||||
franchise_name = franchise.name if franchise else "프랜차이즈"
|
||||
|
||||
# 기존 이름이 "호점" 패턴인 경우에만 업데이트
|
||||
if "호점" in store.name and len(store.name) <= 4:
|
||||
# 코드를 기반으로 지점명 생성 (예: S001 -> 일산점)
|
||||
store_suffix = input(f"\n'{franchise_name} - {store.name} (코드: {store.code})'의 새로운 매장명을 입력하세요\n(예: 일산점, 강남점 등): ")
|
||||
|
||||
if store_suffix:
|
||||
new_name = f"{franchise_name} {store_suffix}"
|
||||
old_name = store.name
|
||||
|
||||
store.name = new_name
|
||||
store.updated_at = datetime.now()
|
||||
|
||||
print(f"✓ '{old_name}' → '{new_name}'")
|
||||
updated_count += 1
|
||||
else:
|
||||
print(f"✗ 건너뜀: {store.name}")
|
||||
else:
|
||||
print(f"- 변경 불필요: {store.name}")
|
||||
|
||||
if updated_count > 0:
|
||||
db.commit()
|
||||
print(f"\n✓ {updated_count}개 매장 이름이 업데이트되었습니다.")
|
||||
else:
|
||||
print("\n✓ 업데이트된 매장이 없습니다.")
|
||||
|
||||
# 업데이트 후 모든 매장 목록 출력
|
||||
print("\n" + "=" * 60)
|
||||
print("현재 매장 목록:")
|
||||
print("=" * 60)
|
||||
stores = db.query(Store).all()
|
||||
for store in stores:
|
||||
franchise = db.query(Franchise).filter(Franchise.id == store.franchise_id).first()
|
||||
print(f"- {store.name} (코드: {store.code}, 프랜차이즈: {franchise.name if franchise else 'N/A'})")
|
||||
|
||||
except Exception as e:
|
||||
print(f"✗ 오류 발생: {e}")
|
||||
db.rollback()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("=" * 60)
|
||||
print("매장 이름 업데이트")
|
||||
print("=" * 60)
|
||||
main()
|
||||
print("=" * 60)
|
||||
Reference in New Issue
Block a user