查看教程文档,我尝试通过从文件加载模式来创建分区,该文件包含以下内容:
{:db/id #db/id[:db.part/db],
:db/ident :account,
:db.install/_partition :db.part/db}
如果我尝试使用以下内容插入数据:
(d/transact conn
[{:db/id #db/id[:db.part/user -1]
:validation/email email
:validation/code code}])
Everthing按预期工作。但如果我更换" user"我的分区名称"帐户",像这样:
(d/transact conn
[{:db/id #db/id[:db.part/account -1]
:validation/email email
:validation/code code}])
我收到此错误:
IllegalArgumentExceptionInfo :db.error/not-a-db-id Invalid db/id: #db/id[:db.part/account -1] datomic.error/arg (error.clj:57)
我做错了什么?我怎么能确定我已经创建了分区?
答案 0 :(得分:3)
您的分区名称为:account
,而不是:db.part/account
。
以下代码应该有效。
(d/transact conn
[{:db/id #db/id[:account -1]
:validation/email email
:validation/code code}])
您可以像这样查询已安装分区的列表
(d/q '[:find [?ident ...]
:where
[?e :db/ident ?ident]
[_ :db.install/partition ?e]]
db)
=> [:account :db.part/tx :db.part/user]