diff --git a/paperone/models.py b/paperone/models.py index aa19aae..f3e8aa8 100644 --- a/paperone/models.py +++ b/paperone/models.py @@ -1,4 +1,4 @@ -from sqlmodel import SQLModel, Field, Relationship +from sqlmodel import SQLModel, Field, Relationship, ForeignKeyConstraint from datetime import datetime from typing import Optional @@ -17,18 +17,18 @@ class TickerOHLCV(SQLModel, table=True): indicators: Optional["IndicatorsData"] = Relationship( back_populates="ohlcv", - sa_relationship_kwargs={ - "foreign_keys": "[IndicatorsData.ticker, IndicatorsData.date]", - "uselist": False, - }, + sa_relationship_kwargs={"uselist": False}, ) class IndicatorsData(SQLModel, table=True): __tablename__ = "indicators" + __table_args__ = ( + ForeignKeyConstraint(["ticker", "date"], ["ohlcv.ticker", "ohlcv.date"]), + ) - ticker: str = Field(foreign_key="ohlcv.ticker", primary_key=True) - date: datetime = Field(foreign_key="ohlcv.date", primary_key=True, index=True) + ticker: str = Field(primary_key=True) + date: datetime = Field(primary_key=True, index=True) # ======================================================================== # MOMENTUM INDICATORS (Trend Direction & Strength)