Как я могу создать ограничение внешнего ключа, используя Yesod / Persistent?

#postgresql #migration #yesod #persistent

#postgresql #миграция #yesod #постоянный

Вопрос:

Есть ли способ создать ограничение внешнего ключа, используя синтаксис схемы Persistent с помощью серверной части Postgres? Или мне нужно сделать это вручную с помощью SQL? В частности, такое ON DELETE CASCADE отношение, что при удалении a HackDay удаляются все его дочерние Project элементы:

 HackDay
    title Text
    created UTCTime default=now()
    votingClosed Bool default=false
    deriving Show
Project
    hackday HackDayId
    title Text
    creators Text
    votes Int default=0
    created UTCTime default=now()
    deriving Show
  

Ответ №1:

В настоящее время Persistent не имеет встроенной поддержки триггеров, хотя это то, что мы хотели добавить (просто не хватает рабочей силы). На данный момент вам придется добавить триггер вручную.