diff options
| author | Daniel Schadt <kingdread@gmx.de> | 2025-11-01 15:35:53 +0100 |
|---|---|---|
| committer | Daniel Schadt <kingdread@gmx.de> | 2025-11-01 15:35:53 +0100 |
| commit | 2dcc034c0123c45725204554e75ea151174142f7 (patch) | |
| tree | 01b81d34261a3be032bab535ce1074d1041817c8 | |
| parent | 335f49ab11e238e6bac6e651c3d583704836761f (diff) | |
| download | fietsboek-2dcc034c0123c45725204554e75ea151174142f7.tar.gz fietsboek-2dcc034c0123c45725204554e75ea151174142f7.tar.bz2 fietsboek-2dcc034c0123c45725204554e75ea151174142f7.zip | |
include database size in total size
| -rw-r--r-- | fietsboek/views/admin.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/fietsboek/views/admin.py b/fietsboek/views/admin.py index b743c85..14e4306 100644 --- a/fietsboek/views/admin.py +++ b/fietsboek/views/admin.py @@ -49,7 +49,6 @@ def _get_size_breakdown(dbsession, data_manager): result = dbsession.execute(query).scalar_one() breakdown.track_data += result elif dialect == "postgresql": - database_name = dbsession.bind.url.database query = text(f"""SELECT pg_relation_size('track_points');""") result = dbsession.execute(query).scalar_one() breakdown.track_data += result @@ -69,6 +68,22 @@ def _get_size_breakdown(dbsession, data_manager): return breakdown +def _get_db_size(dbsession): + dialect = dbsession.bind.dialect.name + if dialect == "sqlite": + query = text( + """SELECT page_size * page_count FROM pragma_page_count(), pragma_page_size();""" + ) + result = dbsession.execute(query).scalar_one() + return result + if dialect == "postgresql": + database_name = dbsession.bind.url.database + query = text(f"""SELECT pg_database_size('{database_name}');""") + result = dbsession.execute(query).scalar_one() + return result + return 0 + + def _get_fietsboek_version(): # pylint: disable=import-outside-toplevel from fietsboek import __VERSION__ @@ -92,7 +107,7 @@ def admin(request: Request): # pylint: disable=not-callable user_count = request.dbsession.execute(select(func.count()).select_from(models.User)).scalar() track_count = request.dbsession.execute(select(func.count()).select_from(models.Track)).scalar() - size_total = request.data_manager.size() + size_total = request.data_manager.size() + _get_db_size(request.dbsession) size_breakdown = _get_size_breakdown(request.dbsession, request.data_manager) try: |
