From 4747400168279c6cfc1196d86ec77b5d7b513c61 Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Thu, 2 Apr 2026 16:05:19 +0900 Subject: fix: add TradeRow ORM model, SignalRow missing columns, guard Event.from_dict - Add TradeRow ORM model matching existing trades migration table - Add conviction, stop_loss, take_profit columns to SignalRow + migration 004 - Persist conviction/stop_loss/take_profit in insert_signal() - Guard Event.from_dict against malformed data with ValueError instead of KeyError --- .../versions/004_add_signal_detail_columns.py | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 shared/alembic/versions/004_add_signal_detail_columns.py (limited to 'shared/alembic') diff --git a/shared/alembic/versions/004_add_signal_detail_columns.py b/shared/alembic/versions/004_add_signal_detail_columns.py new file mode 100644 index 0000000..7a8a77b --- /dev/null +++ b/shared/alembic/versions/004_add_signal_detail_columns.py @@ -0,0 +1,23 @@ +"""Add conviction, stop_loss, take_profit columns to signals table. + +Revision ID: 004 +Revises: 003 +""" + +import sqlalchemy as sa +from alembic import op + +revision = "004" +down_revision = "003" + + +def upgrade(): + op.add_column("signals", sa.Column("conviction", sa.Float, nullable=False, server_default="1.0")) + op.add_column("signals", sa.Column("stop_loss", sa.Numeric, nullable=True)) + op.add_column("signals", sa.Column("take_profit", sa.Numeric, nullable=True)) + + +def downgrade(): + op.drop_column("signals", "take_profit") + op.drop_column("signals", "stop_loss") + op.drop_column("signals", "conviction") -- cgit v1.2.3