Untitled

 avatar
unknown
plain_text
5 months ago
5.7 kB
2
Indexable
users_country.py:
from datetime import datetime
from typing import List

from sqlalchemy import TIMESTAMP, ForeignKeyConstraint, Index, Integer, String
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.orm.base import Mapped

from .base import Base


class UsersCountry(Base):
    __tablename__ = "mdm_users_countries"
    __table_args__ = (
        ForeignKeyConstraint(
            ["COUNTRY_ID"], ["mdm_countries.COUNTRY_ID"], name="CNTRY_ID"
        ),
        ForeignKeyConstraint(
            ["USER_ID"], ["mdm_users.MDM_USER_ID"], name="USER_ID_CONTRY"
        ),
        Index("CNTRY_ID_idx", "COUNTRY_ID"),
        Index("USER_ID_CONTRY_idx", "USER_ID"),
    )

    id: Mapped[int] = mapped_column("USER_CNTRY_ID", Integer, primary_key=True)
    user_id: Mapped[int] = mapped_column("USER_ID", Integer, nullable=False)
    country_id: Mapped[int] = mapped_column("COUNTRY_ID", Integer, nullable=False)
    created_date: Mapped[datetime] = mapped_column(
        "CREATED_DATE", TIMESTAMP, nullable=False
    )
    created_by_id: Mapped[str] = mapped_column(
        "CREATED_BY_ID", String(50), nullable=False
    )
    updated_date: Mapped[datetime] = mapped_column(
        "UPDATED_DATE", TIMESTAMP, nullable=False
    )
    updated_by_id: Mapped[str] = mapped_column(
        "UPDATED_BY_ID", String(50), nullable=False
    )

    countries: Mapped["Country"] = relationship(
        "Country", back_populates="users_countries"
    )
    users: Mapped["User"] = relationship("User", back_populates="users_countries")
    product: Mapped["Product"] = relationship(
        "Product", back_populates="users_country"
    )
product.py:
from datetime import datetime
from typing import List

from sqlalchemy import TIMESTAMP, BigInteger, Index, Integer, String, Text, ForeignKey
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.orm.base import Mapped

from .base import Base


class Product(Base):
    __tablename__ = "mdm_product"
    __table_args__ = (
        Index("MDM_ID", "MDM_ID"),
        Index("REQUEST_STATUS_ID_idx", "REQUEST_STATUS_ID"),
    )

    id: Mapped[int] = mapped_column("RECORD_ID", BigInteger, primary_key=True)
    mdm_id: Mapped[int] = mapped_column("MDM_ID", Integer, nullable=False)
    series_id: Mapped[int] = mapped_column("SERIES_ID", Integer, nullable=False)
    country_id: Mapped[int] = mapped_column("COUNTRY_ID", Integer, nullable=False)
    product_name: Mapped[str] = mapped_column(
        "PRODUCT_NAME", String(255), nullable=False
    )
    request_status_id: Mapped[int] = mapped_column(
        "REQUEST_STATUS_ID", Integer, nullable=False
    )
    current_record: Mapped[int] = mapped_column(
        "CURRENT_RECORD", Integer, nullable=False
    )
    last_active: Mapped[int] = mapped_column("LAST_ACTIVE", Integer, nullable=False)
    is_deleted: Mapped[int] = mapped_column("IS_DELETED", Integer, nullable=False)
    created_date: Mapped[datetime] = mapped_column(
        "CREATED_DATE", TIMESTAMP, nullable=False
    )
    created_by_id: Mapped[str] = mapped_column(
        "CREATED_BY_ID", String(50), nullable=False
    )
    updated_date: Mapped[datetime] = mapped_column(
        "UPDATED_DATE", TIMESTAMP, nullable=False
    )
    updated_by_id: Mapped[str] = mapped_column(
        "UPDATED_BY_ID", String(50), nullable=False
    )
    reltio_id: Mapped[str] = mapped_column("RELTIO_ID", String(255))
    group_type: Mapped[str] = mapped_column("GROUP_TYPE", String(25))
    janssen_mstr_prdct_nm: Mapped[str] = mapped_column(
        "JANSSEN_MSTR_PRDCT_NM", String(150)
    )
    product_phase: Mapped[str] = mapped_column("PRODUCT_PHASE", String(50))
    jnj_full_compound_id: Mapped[str] = mapped_column(
        "JNJ_FULL_COMPOUND_ID", String(50)
    )
    generic_name: Mapped[str] = mapped_column("GENERIC_NAME", String(150))
    jnj_flag: Mapped[str] = mapped_column("JNJ_FLAG", String(4))
    th_area: Mapped[int] = mapped_column("TH_AREA", Integer)
    product_status: Mapped[str] = mapped_column("PRODUCT_STATUS", String(25))
    ta_sub_type: Mapped[str] = mapped_column("TA_SUB_TYPE", Text)

    downstream_publish: Mapped[List["DownstreamPublish"]] = relationship(
        "DownstreamPublish", uselist=True, back_populates="product"
    )
    product_fields: Mapped[List["ProductField"]] = relationship(
        "ProductField", uselist=True, back_populates="product"
    )
    downstream_products: Mapped[List["DownstreamProduct"]] = relationship(
        "DownstreamProduct", uselist=True, back_populates="product"
    )
    product_category: Mapped[List["ProductCategory"]] = relationship(
        "ProductCategory", uselist=True, back_populates="product"
    )
    status: Mapped[List["Status"]] = relationship(
        "Status", uselist=True, back_populates="product"
    )
    therapeutic: Mapped[List["Therapeutic"]] = relationship(
        "Therapeutic", uselist=True, back_populates="product"
    )
    users_country: Mapped["UsersCountry"] = relationship(
        "UsersCountry", uselist=True, back_populates="product"
    )
I am getting the following error:
{
  "data": null,
  "errors": [
    {
      "message": "Could not determine join condition between parent/child tables on relationship Product.users_country - there are no foreign keys linking these tables.  Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a 'primaryjoin' expression.",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "productData"
      ]
    }
  ]
}
Editor is loading...
Leave a Comment