Added automatic nightly SQLite backups

Resolves #22
This commit is contained in:
Donkie
2023-07-04 14:59:05 +02:00
parent 51783afe92
commit f24b9610e8
13 changed files with 221 additions and 4 deletions

View File

@@ -9,6 +9,7 @@ from fastapi.responses import JSONResponse
from starlette.requests import Request
from starlette.responses import Response
from spoolman.database.database import backup_task
from spoolman.exceptions import ItemNotFoundError
from . import filament, models, spool, vendor
@@ -39,6 +40,17 @@ async def health() -> models.HealthCheck:
return models.HealthCheck(status="healthy")
# Add endpoint for triggering a db backup
@app.post("/backup", summary="Trigger a database backup. Only applicable for SQLite databases.")
async def backup() -> models.BackupResponse:
"""Trigger a database backup."""
path = await backup_task()
if path is None:
return models.BackupResponse(success=False)
return models.BackupResponse(success=True, path=str(path))
# Add routers
app.include_router(filament.router)
app.include_router(spool.router)
app.include_router(vendor.router)