Skip to content

Commit bc171eb

Browse files
authored
Merge pull request #74 from DataIntegrationGroup/jir-lexicon-cascade
NO TICKET: Cascade lexicon term updates
2 parents 385aeee + ff71fc6 commit bc171eb

2 files changed

Lines changed: 13 additions & 12 deletions

File tree

db/base.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,15 @@ class Base(DeclarativeBase):
4040
make_searchable(Base.metadata)
4141

4242

43-
def lexicon_term(**kw):
44-
return mapped_column(String(100), ForeignKey("lexicon_term.term"), **kw)
43+
def lexicon_term(foreignkeykw=None, **kw):
44+
45+
fkw = foreignkeykw if foreignkeykw else {}
46+
47+
return mapped_column(
48+
String(100),
49+
ForeignKey("lexicon_term.term", onupdate="CASCADE", **fkw),
50+
**kw,
51+
)
4552

4653

4754
def pascal_to_snake(name):

db/lexicon.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from sqlalchemy import String, Integer, ForeignKey
1717
from sqlalchemy.orm import mapped_column, relationship
1818

19-
from db.base import AutoBaseMixin, Base
19+
from db.base import AutoBaseMixin, Base, lexicon_term
2020

2121

2222
class Lexicon(Base, AutoBaseMixin):
@@ -60,9 +60,7 @@ class TermCategoryAssociation(Base, AutoBaseMixin):
6060

6161
__tablename__ = "lexicon_term_category_association"
6262

63-
lexicon_term = mapped_column(
64-
String(100), ForeignKey("lexicon_term.term", ondelete="CASCADE"), nullable=False
65-
)
63+
lexicon_term = lexicon_term(foreignkeykw={"ondelete": "CASCADE"})
6664
category_name = mapped_column(
6765
String(255),
6866
ForeignKey("lexicon_category.name", ondelete="CASCADE"),
@@ -82,13 +80,9 @@ class LexiconTriple(Base, AutoBaseMixin):
8280
This can be used to represent relationships between terms.
8381
"""
8482

85-
subject = mapped_column(
86-
String(100), ForeignKey("lexicon_term.term", ondelete="CASCADE"), nullable=False
87-
)
83+
subject = lexicon_term(nullable=False)
8884
predicate = mapped_column(String(100), nullable=False)
89-
object_ = mapped_column(
90-
String(100), ForeignKey("lexicon_term.term", ondelete="CASCADE"), nullable=False
91-
)
85+
object_ = lexicon_term(nullable=False)
9286

9387
subject_term = relationship("Lexicon", foreign_keys=[subject])
9488
object_term = relationship("Lexicon", foreign_keys=[object_])

0 commit comments

Comments
 (0)