Guard MySQL size calculation returning None (#73331)
This commit is contained in:
parent
2b07082cf6
commit
53b3d2ee87
1 changed files with 14 additions and 11 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue