【发布时间】:2018-02-02 05:08:53
【问题描述】:
我想使用带有Persistent 的现有 数据库,使用这个简化的架构:
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Entity sql=entities
deriving Show
EntityLink sql=entity_links
sourceId EntityId
targetId EntityId
deriving Show
|]
entities 表有一个 id 列,这很好。但是,entity_links 表没有一个,我不想添加一个。相反,它具有主键(source_id, target_id)。每当我想插入 EntityLink 时,我都会收到此运行时错误:
SqlError {sqlState = "42703", sqlExecStatus = FatalError, sqlErrorMsg = "column \"id\" does not exist", sqlErrorDetail = "", sqlErrorHint = ""}
在给定有效的sourceId 和targetId 的情况下,我在代码中插入EntityLink 的方法如下:
insert $ EntityLink { entityLinkSourceId = sourceId
, entityLinkTargetId = targetId
}
如何在 Persistent 中为 EntityLink 类型禁用 id 列?
【问题讨论】:
-
在
EntityLink中使用primary sourceId targetId。
标签: sql haskell persistent haskell-persistent