Skip to content

Commit 96e9de3

Browse files
Update main.py to remove old files
1 parent 97b2403 commit 96e9de3

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

app/main.py

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import uvicorn
88
from enum import Enum
99
from pathlib import Path
10-
from datetime import datetime
10+
from datetime import datetime, timedelta
1111
from pyais import IterMessages
1212
from contextlib import asynccontextmanager
1313
from fastapi.responses import FileResponse
@@ -212,6 +212,41 @@ def delete_log_file(self):
212212
else:
213213
logger.info("Log file does not exist, nothing to delete")
214214

215+
def delete_old_database(self, weeks: int = 1):
216+
"""Delete database files older than the specified number of weeks.
217+
218+
Args:
219+
weeks: Number of weeks to keep database files. Default is 1 week.
220+
"""
221+
try:
222+
cutoff_time = datetime.now() - timedelta(weeks=weeks)
223+
db_dir = self.config.database_url
224+
225+
if not db_dir.exists():
226+
logger.warning(f"Database directory does not exist: {db_dir}")
227+
return
228+
229+
deleted_count = 0
230+
for db_file in db_dir.glob("*.db"):
231+
# Skip the current live database and snapshot
232+
if db_file == self.LIVE_DB or db_file == self.SNAPSHOT_DB:
233+
continue
234+
235+
# Check file modification time
236+
file_mtime = datetime.fromtimestamp(db_file.stat().st_mtime)
237+
if file_mtime < cutoff_time:
238+
db_file.unlink(missing_ok=True)
239+
deleted_count += 1
240+
logger.info(f"Deleted old database file: {db_file.name}")
241+
242+
if deleted_count > 0:
243+
logger.info(f"Deleted {deleted_count} old database file(s)")
244+
else:
245+
logger.info("No old database files to delete")
246+
247+
except Exception as e:
248+
logger.error(f"Error deleting old database files: {e}")
249+
215250
async def reset_db_on_new_day(self):
216251
"""Delete files older than current day at 23:59"""
217252
logger.warning("SQLite DB older than 1 day — resetting")
@@ -222,6 +257,8 @@ async def reset_db_on_new_day(self):
222257
logger.info("SQLite DB reset completed")
223258
# Delete log file as well
224259
self.delete_log_file()
260+
# Delete old database files (older than 1 week)
261+
self.delete_old_database(weeks=1)
225262
except Exception as e:
226263
logger.error(f"Cleanup error: {e}")
227264

0 commit comments

Comments
 (0)