summaryrefslogtreecommitdiff
path: root/shared/alembic/versions
diff options
context:
space:
mode:
Diffstat (limited to 'shared/alembic/versions')
-rw-r--r--shared/alembic/versions/001_initial_schema.py10
-rw-r--r--shared/alembic/versions/002_news_sentiment_tables.py10
-rw-r--r--shared/alembic/versions/003_add_missing_indexes.py35
-rw-r--r--shared/alembic/versions/004_add_signal_detail_columns.py25
4 files changed, 70 insertions, 10 deletions
diff --git a/shared/alembic/versions/001_initial_schema.py b/shared/alembic/versions/001_initial_schema.py
index 2bdaafc..7b744ee 100644
--- a/shared/alembic/versions/001_initial_schema.py
+++ b/shared/alembic/versions/001_initial_schema.py
@@ -5,16 +5,16 @@ Revises:
Create Date: 2026-04-01
"""
-from typing import Sequence, Union
+from collections.abc import Sequence
-from alembic import op
import sqlalchemy as sa
+from alembic import op
# revision identifiers, used by Alembic.
revision: str = "001"
-down_revision: Union[str, None] = None
-branch_labels: Union[str, Sequence[str], None] = None
-depends_on: Union[str, Sequence[str], None] = None
+down_revision: str | None = None
+branch_labels: str | Sequence[str] | None = None
+depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
diff --git a/shared/alembic/versions/002_news_sentiment_tables.py b/shared/alembic/versions/002_news_sentiment_tables.py
index 402ff87..d85a634 100644
--- a/shared/alembic/versions/002_news_sentiment_tables.py
+++ b/shared/alembic/versions/002_news_sentiment_tables.py
@@ -5,15 +5,15 @@ Revises: 001
Create Date: 2026-04-02
"""
-from typing import Sequence, Union
+from collections.abc import Sequence
-from alembic import op
import sqlalchemy as sa
+from alembic import op
revision: str = "002"
-down_revision: Union[str, None] = "001"
-branch_labels: Union[str, Sequence[str], None] = None
-depends_on: Union[str, Sequence[str], None] = None
+down_revision: str | None = "001"
+branch_labels: str | Sequence[str] | None = None
+depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
diff --git a/shared/alembic/versions/003_add_missing_indexes.py b/shared/alembic/versions/003_add_missing_indexes.py
new file mode 100644
index 0000000..7a252d4
--- /dev/null
+++ b/shared/alembic/versions/003_add_missing_indexes.py
@@ -0,0 +1,35 @@
+"""Add missing indexes for common query patterns.
+
+Revision ID: 003
+Revises: 002
+Create Date: 2026-04-02
+"""
+
+from collections.abc import Sequence
+
+from alembic import op
+
+revision: str = "003"
+down_revision: str | None = "002"
+branch_labels: str | Sequence[str] | None = None
+depends_on: str | Sequence[str] | None = None
+
+
+def upgrade() -> None:
+ op.create_index("idx_signals_symbol_created", "signals", ["symbol", "created_at"])
+ op.create_index(
+ "idx_orders_symbol_status_created", "orders", ["symbol", "status", "created_at"]
+ )
+ op.create_index("idx_trades_order_id", "trades", ["order_id"])
+ op.create_index("idx_trades_symbol_traded", "trades", ["symbol", "traded_at"])
+ op.create_index("idx_portfolio_snapshots_at", "portfolio_snapshots", ["snapshot_at"])
+ op.create_index("idx_symbol_scores_symbol", "symbol_scores", ["symbol"], unique=True)
+
+
+def downgrade() -> None:
+ op.drop_index("idx_symbol_scores_symbol", table_name="symbol_scores")
+ op.drop_index("idx_portfolio_snapshots_at", table_name="portfolio_snapshots")
+ op.drop_index("idx_trades_symbol_traded", table_name="trades")
+ op.drop_index("idx_trades_order_id", table_name="trades")
+ op.drop_index("idx_orders_symbol_status_created", table_name="orders")
+ op.drop_index("idx_signals_symbol_created", table_name="signals")
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..4009b6e
--- /dev/null
+++ b/shared/alembic/versions/004_add_signal_detail_columns.py
@@ -0,0 +1,25 @@
+"""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")