Guard MySQL size calculation returning None (#73331)

This commit is contained in:
Paulus Schoutsen 2022-06-10 12:49:58 -07:00
parent c5adee6821
commit 972aab3c26

View File

@ -5,15 +5,18 @@ from sqlalchemy import text
from sqlalchemy.orm.session import Session
def db_size_bytes(session: Session, database_name: str) -> float:
def db_size_bytes(session: Session, database_name: str) -> float | None:
"""Get the mysql database size."""
return float(
session.execute(
text(
"SELECT ROUND(SUM(DATA_LENGTH + INDEX_LENGTH), 2) "
"FROM information_schema.TABLES WHERE "
"TABLE_SCHEMA=:database_name"
),
{"database_name": database_name},
).first()[0]
)
size = session.execute(
text(
"SELECT ROUND(SUM(DATA_LENGTH + INDEX_LENGTH), 2) "
"FROM information_schema.TABLES WHERE "
"TABLE_SCHEMA=:database_name"
),
{"database_name": database_name},
).first()[0]
if size is None:
return None
return float(size)