Skip to content

Commit 5fd9e58

Browse files
committed
Compound foreign key constraint
1 parent 42202c0 commit 5fd9e58

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/murfey/util/db.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@
66
from typing import List, Optional
77

88
import sqlalchemy
9-
from sqlmodel import Field, Relationship, SQLModel, UniqueConstraint, create_engine
9+
from sqlmodel import (
10+
Field,
11+
ForeignKeyConstraint,
12+
Relationship,
13+
SQLModel,
14+
UniqueConstraint,
15+
create_engine,
16+
)
1017

1118
"""
1219
GENERAL
@@ -371,10 +378,16 @@ class DataCollectionGroup(SQLModel, table=True): # type: ignore
371378

372379

373380
class DataCollection(SQLModel, table=True): # type: ignore
381+
__table_args__ = (
382+
ForeignKeyConstraint(
383+
["dcg_id", "dcg_tag"], ["datacollectiongroup.id", "datacollectiongroup.tag"]
384+
),
385+
)
386+
374387
id: int = Field(primary_key=True, unique=True)
375388
tag: str = Field(primary_key=True)
376-
dcg_id: int = Field(foreign_key="datacollectiongroup.id")
377-
dcg_tag: str = Field(foreign_key="datacollectiongroup.tag")
389+
dcg_id: int = Field()
390+
dcg_tag: str = Field()
378391
data_collection_group: Optional[DataCollectionGroup] = Relationship(
379392
back_populates="data_collections"
380393
)

0 commit comments

Comments
 (0)