"Unable to resolve entity" 尝试处理 Datomic 模式时出错
"Unable to resolve entity" error when trying to transact a Datomic schema
我是 Datomic 超级新手。我正在尝试将分类法添加到我的数据库中,但出现了一个我无法理解的错误。错误是:
{:datomic.client-spi/request-id "c587b3e8-8f19-45f5-a563-bdba13e3a0d8",
:cognitect.anomalies/category :cognitect.anomalies/not-found,
:cognitect.anomalies/message
":db.error/not-an-entity Unable to resolve entity: {:idx -1000000, :part :db.part/db} in datom [{:idx -1000000, :part :db.part/db} :db/ident :arb/title]",
:dbs
[{:database-id "datomic:dev://localhost:4334/datemo",
:t 1004,
:next-t 1009,
:history false}]}
这是我正在使用的分类法:
[{:db/id #db/id [:db.part/db]
:db/ident :arb/title
:db/unique :db.unique/identity
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db/fulltext true
:db/index true
:db.install/_attribute :db.part/db}
{:db/id #db/id [:db.part/db]
:db/ident :arb/description
:db/unique :db.unique/identity
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db.install/_attribute :db.part/db}
{:db/id #db/id [:db.part/db]
:db/ident :arb/content
:db/unique :db.unique/identity
:db/valueType :db.type/ref
:db/isComponent true
:db/cardinality :db.cardinality/many
:db.install/_attribute :db.part/db}]
这是我打的电话:
(def arb-tx (-> (io/resource "schemas/arb.edn") ;; the schema above
(read-all)
(first)))
(pprint (<!! (client/transact conn {:tx-data arb-tx})))
我很难从错误信息中理解这里到底有什么是无法解决的。我认为我对引擎盖下发生的事情的理解太模糊,无法理解这里出了什么问题。谁能赐教一下?
Datomic Client 库不支持显式分区或模式定义中的 :db.install/_attribute。在 Datomic 0.9.5430 之前使用 Peers 时需要这些元素。
尝试将您的架构定义替换为:
[{:db/ident :arb/title
:db/unique :db.unique/identity
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db/fulltext true
:db/index true}
{:db/ident :arb/description
:db/unique :db.unique/identity
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one}
{:db/ident :arb/content
:db/unique :db.unique/identity
:db/valueType :db.type/ref
:db/isComponent true
:db/cardinality :db.cardinality/many}]
-马歇尔
我是 Datomic 超级新手。我正在尝试将分类法添加到我的数据库中,但出现了一个我无法理解的错误。错误是:
{:datomic.client-spi/request-id "c587b3e8-8f19-45f5-a563-bdba13e3a0d8",
:cognitect.anomalies/category :cognitect.anomalies/not-found,
:cognitect.anomalies/message
":db.error/not-an-entity Unable to resolve entity: {:idx -1000000, :part :db.part/db} in datom [{:idx -1000000, :part :db.part/db} :db/ident :arb/title]",
:dbs
[{:database-id "datomic:dev://localhost:4334/datemo",
:t 1004,
:next-t 1009,
:history false}]}
这是我正在使用的分类法:
[{:db/id #db/id [:db.part/db]
:db/ident :arb/title
:db/unique :db.unique/identity
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db/fulltext true
:db/index true
:db.install/_attribute :db.part/db}
{:db/id #db/id [:db.part/db]
:db/ident :arb/description
:db/unique :db.unique/identity
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db.install/_attribute :db.part/db}
{:db/id #db/id [:db.part/db]
:db/ident :arb/content
:db/unique :db.unique/identity
:db/valueType :db.type/ref
:db/isComponent true
:db/cardinality :db.cardinality/many
:db.install/_attribute :db.part/db}]
这是我打的电话:
(def arb-tx (-> (io/resource "schemas/arb.edn") ;; the schema above
(read-all)
(first)))
(pprint (<!! (client/transact conn {:tx-data arb-tx})))
我很难从错误信息中理解这里到底有什么是无法解决的。我认为我对引擎盖下发生的事情的理解太模糊,无法理解这里出了什么问题。谁能赐教一下?
Datomic Client 库不支持显式分区或模式定义中的 :db.install/_attribute。在 Datomic 0.9.5430 之前使用 Peers 时需要这些元素。
尝试将您的架构定义替换为:
[{:db/ident :arb/title
:db/unique :db.unique/identity
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db/fulltext true
:db/index true}
{:db/ident :arb/description
:db/unique :db.unique/identity
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one}
{:db/ident :arb/content
:db/unique :db.unique/identity
:db/valueType :db.type/ref
:db/isComponent true
:db/cardinality :db.cardinality/many}]
-马歇尔