feat(db): Database.check_init()

This commit is contained in:
2023-08-27 00:31:44 +08:00
parent d979b6cd10
commit a6c1e594c4
2 changed files with 24 additions and 4 deletions

View File

@ -1,4 +1,4 @@
from sqlalchemy import Engine, select
from sqlalchemy import Engine, inspect, select
from sqlalchemy.orm import sessionmaker
from .models.config import *
@ -46,3 +46,17 @@ class Database(metaclass=Singleton):
if not checkfirst or not result:
session.add(Property(key="version", value="2"))
session.commit()
def check_init(self) -> bool:
# check table exists
expect_tables = (
list(SongsBase.metadata.tables.keys())
+ list(ScoresBase.metadata.tables.keys())
+ list(ConfigBase.metadata.tables.keys())
+ [
Calculated.__tablename__,
Best.__tablename__,
CalculatedPotential.__tablename__,
]
)
return all(inspect(self.engine).has_table(t) for t in expect_tables)