From 2b1db156c7ea7e0be543ab91813922b95eb043cb Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Wed, 1 Apr 2026 16:00:38 +0900 Subject: feat: add SQLAlchemy ORM models and Alembic migration setup Add SA 2.0 declarative models (CandleRow, SignalRow, OrderRow, TradeRow, PositionRow, PortfolioSnapshotRow) mirroring existing asyncpg tables. Set up Alembic with async PostgreSQL support and add migrate/migrate-down/ migrate-new Makefile targets. Update shared dependencies with sqlalchemy, alembic, structlog, prometheus-client, pyyaml, aiohttp, and rich. --- shared/alembic/script.py.mako | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 shared/alembic/script.py.mako (limited to 'shared/alembic/script.py.mako') diff --git a/shared/alembic/script.py.mako b/shared/alembic/script.py.mako new file mode 100644 index 0000000..fbc4b07 --- /dev/null +++ b/shared/alembic/script.py.mako @@ -0,0 +1,26 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision: str = ${repr(up_revision)} +down_revision: Union[str, None] = ${repr(down_revision)} +branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)} +depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)} + + +def upgrade() -> None: + ${upgrades if upgrades else "pass"} + + +def downgrade() -> None: + ${downgrades if downgrades else "pass"} -- cgit v1.2.3