Files
2026-07-05 23:06:46 +02:00

36 lines
1.1 KiB
Python

import logging
import typing
import tortoise
import tortoise.config
import tortoise.migrations.api
if typing.TYPE_CHECKING:
from app.params import Parameters
class Database:
def __init__(self, params: Parameters) -> None:
self.env = params.env
self.logger = logging.getLogger(self.__class__.__name__)
self.config = tortoise.config.TortoiseConfig(
connections={"default": tortoise.config.DBUrlConfig(params.db_uri)},
apps={
"models": tortoise.config.AppConfig(
models=["app.models"],
default_connection="default",
migrations="app.migrations",
)
},
)
def init(self) -> None:
self.logger.info("Migrating database")
tortoise.run_async(tortoise.migrations.api.migrate(config=self.config))
self.logger.info("Database migrated")
self.logger.info("Initializing database")
tortoise.run_async(
tortoise.Tortoise.init(config=self.config, _enable_global_fallback=True)
)
self.logger.info("Database ready")