From d8e166a3405e8bc117b7bd7957e4c76fe7ba76a5 Mon Sep 17 00:00:00 2001 From: Richie Cahill Date: Tue, 24 Mar 2026 21:36:50 -0400 Subject: [PATCH] adding data_science_dev --- python/database_cli.py | 7 ++++ python/orm/__init__.py | 2 + python/orm/data_science_dev/__init__.py | 11 ++++++ python/orm/data_science_dev/base.py | 52 +++++++++++++++++++++++++ python/orm/data_science_dev/models.py | 3 ++ systems/jeeves/services/postgress.nix | 5 +++ 6 files changed, 80 insertions(+) create mode 100644 python/orm/data_science_dev/__init__.py create mode 100644 python/orm/data_science_dev/base.py create mode 100644 python/orm/data_science_dev/models.py diff --git a/python/database_cli.py b/python/database_cli.py index 8366e6c..600cb1d 100644 --- a/python/database_cli.py +++ b/python/database_cli.py @@ -90,6 +90,13 @@ DATABASES: dict[str, DatabaseConfig] = { base_class_name="SignalBotBase", models_module="python.orm.signal_bot.models", ), + "data_science_dev": DatabaseConfig( + env_prefix="DATA_SCIENCE_DEV", + version_location="python/alembic/data_science_dev/versions", + base_module="python.orm.data_science_dev.base", + base_class_name="DataScienceDevBase", + models_module="python.orm.data_science_dev.models", + ), } diff --git a/python/orm/__init__.py b/python/orm/__init__.py index e5482f9..9b4466f 100644 --- a/python/orm/__init__.py +++ b/python/orm/__init__.py @@ -1,10 +1,12 @@ """ORM package exports.""" +from python.orm.data_science_dev.base import DataScienceDevBase from python.orm.richie.base import RichieBase from python.orm.signal_bot.base import SignalBotBase from python.orm.van_inventory.base import VanInventoryBase __all__ = [ + "DataScienceDevBase", "RichieBase", "SignalBotBase", "VanInventoryBase", diff --git a/python/orm/data_science_dev/__init__.py b/python/orm/data_science_dev/__init__.py new file mode 100644 index 0000000..8b489f3 --- /dev/null +++ b/python/orm/data_science_dev/__init__.py @@ -0,0 +1,11 @@ +"""Data science dev database ORM exports.""" + +from __future__ import annotations + +from python.orm.data_science_dev.base import DataScienceDevBase, DataScienceDevTableBase, DataScienceDevTableBaseBig + +__all__ = [ + "DataScienceDevBase", + "DataScienceDevTableBase", + "DataScienceDevTableBaseBig", +] diff --git a/python/orm/data_science_dev/base.py b/python/orm/data_science_dev/base.py new file mode 100644 index 0000000..f7a38a4 --- /dev/null +++ b/python/orm/data_science_dev/base.py @@ -0,0 +1,52 @@ +"""Data science dev database ORM base.""" + +from __future__ import annotations + +from datetime import datetime + +from sqlalchemy import BigInteger, DateTime, MetaData, func +from sqlalchemy.ext.declarative import AbstractConcreteBase +from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column + +from python.orm.common import NAMING_CONVENTION + + +class DataScienceDevBase(DeclarativeBase): + """Base class for data_science_dev database ORM models.""" + + schema_name = "main" + + metadata = MetaData( + schema=schema_name, + naming_convention=NAMING_CONVENTION, + ) + + +class _TableMixin: + """Shared timestamp columns for all table bases.""" + + created: Mapped[datetime] = mapped_column( + DateTime(timezone=True), + server_default=func.now(), + ) + updated: Mapped[datetime] = mapped_column( + DateTime(timezone=True), + server_default=func.now(), + onupdate=func.now(), + ) + + +class DataScienceDevTableBase(_TableMixin, AbstractConcreteBase, DataScienceDevBase): + """Table with Integer primary key.""" + + __abstract__ = True + + id: Mapped[int] = mapped_column(primary_key=True) + + +class DataScienceDevTableBaseBig(_TableMixin, AbstractConcreteBase, DataScienceDevBase): + """Table with BigInteger primary key.""" + + __abstract__ = True + + id: Mapped[int] = mapped_column(BigInteger, primary_key=True) diff --git a/python/orm/data_science_dev/models.py b/python/orm/data_science_dev/models.py new file mode 100644 index 0000000..25b3c4e --- /dev/null +++ b/python/orm/data_science_dev/models.py @@ -0,0 +1,3 @@ +"""Data science dev database ORM models.""" + +from __future__ import annotations diff --git a/systems/jeeves/services/postgress.nix b/systems/jeeves/services/postgress.nix index ab961a0..65cec48 100644 --- a/systems/jeeves/services/postgress.nix +++ b/systems/jeeves/services/postgress.nix @@ -39,6 +39,10 @@ in host postgres math ::1/128 trust host postgres math 192.168.90.1/24 trust + local data_science_dev math trust + host data_science_dev math 127.0.0.1/32 trust + host data_science_dev math ::1/128 trust + host data_science_dev math 192.168.90.1/24 trust ''; identMap = '' @@ -110,6 +114,7 @@ in } ]; ensureDatabases = [ + "data_science_dev" "hass" "gitea" "math"