Skip to content

Database

Database module.

create_tables()

Create tables.

Example
from sqlalchemy import create_engine

from devpipe.database import set_engine, create_tables

engine = create_engine("sqlite:///devpipe.db")
set_engine(engine)
create_tables()
Source code in devpipe/database.py
def create_tables() -> None:
    """Create tables.

    Example:
        ```python
        from sqlalchemy import create_engine

        from devpipe.database import set_engine, create_tables

        engine = create_engine("sqlite:///devpipe.db")
        set_engine(engine)
        create_tables()
        ```
    """
    from .models.base import BaseSQLModel

    BaseSQLModel.metadata.create_all(_get_engine())

drop_tables()

Drop tables.

Example
from sqlalchemy import create_engine

from devpipe.database import set_engine, drop_tables

engine = create_engine("sqlite:///devpipe.db")
set_engine(engine)
drop_tables()
Source code in devpipe/database.py
def drop_tables() -> None:
    """Drop tables.

    Example:
        ```python
        from sqlalchemy import create_engine

        from devpipe.database import set_engine, drop_tables

        engine = create_engine("sqlite:///devpipe.db")
        set_engine(engine)
        drop_tables()
        ```
    """
    from .models.base import BaseSQLModel

    BaseSQLModel.metadata.drop_all(_get_engine())

set_engine(engine=None)

Set engine.

Parameters:

Name Type Description Default
engine Optional[Engine]

SQLALchemy engine.

None

Returns:

Type Description
Engine

SQLALchemy engine.

Example
from sqlalchemy import create_engine

import devpipe as dp
from devpipe.database import set_engine

engine = create_engine("sqlite:///devpipe.db")
set_engine(engine)

@dp.pipeline
def my_pipeline():
    ...
Source code in devpipe/database.py
def set_engine(engine: Optional[Engine] = None) -> Engine:
    """Set engine.

    Args:
        engine (Optional[Engine], optional): SQLALchemy engine.

    Returns:
        SQLALchemy engine.

    Example:
        ```python
        from sqlalchemy import create_engine

        import devpipe as dp
        from devpipe.database import set_engine

        engine = create_engine("sqlite:///devpipe.db")
        set_engine(engine)

        @dp.pipeline
        def my_pipeline():
            ...
        ```
    """
    if engine is None:
        engine = create_engine(CONFIG.database_url)
    DEVPIPE["engine"] = engine
    logger.debug(f"Engine set with driver `{engine.driver}`.")
    return DEVPIPE["engine"]