elmeg-demo/backend/fix_tours.py

29 lines
965 B
Python

from sqlmodel import Session, select, func
from database import engine
from models import Tour, Show
def fix_tour_dates():
with Session(engine) as session:
tours = session.exec(select(Tour)).all()
print(f"Fixing dates for {len(tours)} tours...")
for tour in tours:
# Find min/max show date
result = session.exec(
select(func.min(Show.date), func.max(Show.date))
.where(Show.tour_id == tour.id)
).first()
if result and result[0]:
tour.start_date = result[0]
tour.end_date = result[1]
session.add(tour)
# print(f" {tour.name}: {tour.start_date.date()} - {tour.end_date.date()}")
# else:
# print(f" {tour.name}: No shows found")
session.commit()
print("Done.")
if __name__ == "__main__":
fix_tour_dates()