如何在不使用db.part的情况下创建Datomic分区

时间:2016-03-26 14:02:26

标签: datomic

在“创建新分区”标题下的Datomic(http://docs.datomic.com/schema.html)官方文档中,它表示可以像这样创建一个新分区(社区):

{:db/id #db/id[:db.part/db]
 :db/ident :communities}

这里':communities'不是写成'db.part / communities'

我无法以这种方式安装新分区。对我来说,它必须与领先的'db.part /'。文档是错误的,还是我没有看到更大的图景?

1 个答案:

答案 0 :(得分:1)

如果您在文档中进一步阅读,则会发现您错过了该交易所需的其他数据(标有"这是完整的交易......&# 34; )。该数据是(用户将tempid指定为-1可选):

[:db/add :db.part/db :db.install/partition #db/id[:db.part/db -1]]

使用解析为系统分区(:db.part/db)的tempid进行事务处理时,还必须包含标记安装的数据,如:db.install/partition:db.install/attribute(属性的反向引用版本)包含在地图中更为常见。)

从文档中处理完整的示例可以正常工作:

(def tx [{:db/id #db/id[:db.part/db -1]
          :db/ident :communities}
         [:db/add :db.part/db :db.install/partition #db/id[:db.part/db -1]]])
@(d/transact conn tx)
;; returns successful tx map