Как создать раздел Datomic без использования db.part

В официальных документах для Datomic ( http://docs.datomic.com/schema.html) под заголовком "Создание новых разделов" говорится, что новый раздел (сообщества) может быть создан следующим образом:

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

Здесь ": community" не записывается как "db.part / community"

Я не могу установить новый раздел таким образом. Для меня это должно быть с ведущим 'db.part /'. Документация неверна или я не вижу более широкой картины?

1 ответ

Если вы прочтете дальше в документации, вы увидите, что вам не хватает другого элемента данных, необходимого для этой транзакции (с пометкой "Вот полная транзакция..."). Это дата (с пользователем, назначенным tempid как -1, необязательно):

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

Все, что было обработано с помощью tempid, которое разрешается в системный раздел (:db.part/db) также должен включать в себя обозначение установки, как с :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
Другие вопросы по тегам