diff --git a/docs/web/api/lib/db/index.rst b/docs/web/api/lib/db/index.rst index 3e388ab..24d62af 100644 --- a/docs/web/api/lib/db/index.rst +++ b/docs/web/api/lib/db/index.rst @@ -9,5 +9,4 @@ Documentation for the Database library. :titlesonly: base - utils orm diff --git a/docs/web/api/lib/db/utils.rst b/docs/web/api/lib/db/utils.rst deleted file mode 100644 index 10f7ebc..0000000 --- a/docs/web/api/lib/db/utils.rst +++ /dev/null @@ -1,9 +0,0 @@ -===== -utils -===== - -API Reference -------------- - -.. automodule:: src.server.lib.db.utils - :members: diff --git a/src/server/lib/db/__init__.py b/src/server/lib/db/__init__.py index ac4a602..7718add 100644 --- a/src/server/lib/db/__init__.py +++ b/src/server/lib/db/__init__.py @@ -1,7 +1,7 @@ """Core DB Package.""" from __future__ import annotations -from src.server.lib.db import orm, utils +from src.server.lib.db import orm from src.server.lib.db.base import ( async_session_factory, config, @@ -11,7 +11,6 @@ ) __all__ = [ - "utils", "config", "plugin", "engine", diff --git a/src/server/lib/db/utils.py b/src/server/lib/db/utils.py deleted file mode 100644 index 7f725d3..0000000 --- a/src/server/lib/db/utils.py +++ /dev/null @@ -1,76 +0,0 @@ -"""Database utilities.""" - -import anyio -from alembic import command as migration_command -from alembic.config import Config as AlembicConfig -from sqlalchemy import Table -from sqlalchemy.schema import DropTable - -from src.server.lib import log, settings -from src.server.lib.db.base import engine -from src.server.lib.db.orm import DatabaseModel, orm_registry - -__all__ = [ - "create_database", - "drop_tables", - "purge_database", - "reset_database", - "show_database_revision", - "upgrade_database", -] - -logger = log.get_logger() - - -def create_database() -> None: - """Create database DDL migrations.""" - alembic_cfg = AlembicConfig(settings.db.MIGRATION_CONFIG) - alembic_cfg.set_main_option("script_location", settings.db.MIGRATION_PATH) - migration_command.upgrade(alembic_cfg, "head") - - -def upgrade_database() -> None: - """Upgrade the database to the latest revision.""" - alembic_cfg = AlembicConfig(settings.db.MIGRATION_CONFIG) - alembic_cfg.set_main_option("script_location", settings.db.MIGRATION_PATH) - migration_command.upgrade(alembic_cfg, "head") - - -def reset_database() -> None: - """Reset the database to an initial empty state.""" - alembic_cfg = AlembicConfig(settings.db.MIGRATION_CONFIG) - alembic_cfg.set_main_option("script_location", settings.db.MIGRATION_PATH) - anyio.run(drop_tables) - migration_command.upgrade(alembic_cfg, "head") - - -def purge_database() -> None: - """Drop all objects in the database.""" - alembic_cfg = AlembicConfig(settings.db.MIGRATION_CONFIG) - alembic_cfg.set_main_option("script_location", settings.db.MIGRATION_PATH) - anyio.run(drop_tables) - - -def show_database_revision() -> None: - """Show current database revision.""" - alembic_cfg = AlembicConfig(settings.db.MIGRATION_CONFIG) - alembic_cfg.set_main_option("script_location", settings.db.MIGRATION_PATH) - migration_command.current(alembic_cfg, verbose=False) - - -async def drop_tables() -> None: - """Drop all tables from the database.""" - logger.info("connecting to database backend.") - async with engine.begin() as db: - logger.info("dropping the db") - await db.run_sync(DatabaseModel.metadata.drop_all) - logger.info("dropping the version table") - - await db.execute( - DropTable( - element=Table(settings.db.MIGRATION_DDL_VERSION_TABLE, orm_registry.metadata), - if_exists=True, - ), - ) - await db.commit() - logger.info("successfully dropped all objects")