@@ -1,13 +1,36 @@
|
||||
import argparse
|
||||
import datetime
|
||||
import os
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
|
||||
from sqlalchemy import Date, cast, func, select
|
||||
from sqlalchemy import func, select
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from meal_manager.main import engine
|
||||
from meal_manager.main import engine, sqlite_file_name
|
||||
from meal_manager.models import Event, Registration, Subscription
|
||||
|
||||
|
||||
def backup_db():
|
||||
backup_dir = Path(os.environ.get("MEAL_MANAGER_BACKUP_DIR", None))
|
||||
shutil.copy2(
|
||||
sqlite_file_name,
|
||||
backup_dir / f"{sqlite_file_name}.{datetime.datetime.now().isoformat()}",
|
||||
)
|
||||
# TODO: Delete old backups
|
||||
|
||||
|
||||
def run_nightly_tasks():
|
||||
print("Applying Subscriptions")
|
||||
with Session(engine) as session:
|
||||
apply_subscriptions(session)
|
||||
|
||||
print("Running db backup")
|
||||
backup_db()
|
||||
|
||||
print("Done running nightly tasks.")
|
||||
|
||||
|
||||
def apply_subscriptions(session: Session, event: Event = None, dry_run: bool = False):
|
||||
|
||||
subscriptions = session.scalars(select(Subscription)).all()
|
||||
|
||||
Reference in New Issue
Block a user