Как получить постоянную локальную базу данных datomic?

С Datomic я не понимаю, как получить локальную базу данных, чтобы поиграть с ней.

Если я наберу:

>>(ns datomic-tut (:use [datomic.api :as d]))
nil

>>(d/create-database "datomic:mem://hello")
true

>> (d/connect "datomic:mem://hello")
#<LocalConnection datomic.peer.LocalConnection@57102fab>

>> Ctrl-D to Disconnect

Затем, если я перезапущу реплику:

>> (ns project-ns   (:use [datomic.api :as d]))
nil

>> (d/connect "datomic:mem://hello")
ExceptionInfo :peer/db-not-found Could not find hello in catalog  clojure.core/ex-info (core.clj:4227)

Есть ли другой тип локального uri, который я могу создать, чтобы сохранить базу данных, которую я создаю?


person zcaudate    schedule 12.06.2012    source источник


Ответы (2)


В руководстве по началу работы рассказывается об использовании бесплатного протокола хранения.

Запуск транзакции с протоколом бесплатного хранилища

Протокол бесплатного хранилища использует файлы локального диска для хранения.

Вы можете запустить локальный транзактор со свободным хранилищем следующим образом:

bin/transactor config/samples/free-transactor-template.properties

Этот скрипт напечатает несколько строк вывода, включая базовый URI, который вы будете использовать для подключения, например.

datomic:free://localhost:4334/<DB-NAME>

Чтобы создать строку подключения, просто замените ее именем базы данных по вашему выбору, например. "привет":

datomic:free://localhost:4334/hello

Используя этот URI, теперь вы сможете повторить шаги из предыдущего раздела, на этот раз установив соединение с транзактором.

person sw1nn    schedule 12.06.2012
comment
ааа... Я пропустил этот шаг, когда проходил тут! Спасибо! - person zcaudate; 12.06.2012
comment
Теперь можно использовать и протокол datomic:free://. - person deprecated; 09.08.2012
comment
В текущей версии datomic (0.8.4122) имя файла свойств образца отличается. Используйте 1_. - person Daniel Neal; 10.08.2013
comment
Кстати, мне пришлось использовать bin/transactor.cmd (не bin/transactor) в Windows/Cygwin, чтобы запустить БД. - person 0dB; 14.11.2013
comment
Я получаю сообщение об ошибке, подобное этому: groups.google.com/d/msg /datomic/XKEVcORz9Z8/kq1VrW53hZAJ - person Adam Miller; 09.03.2014

По состоянию на 2020 год, хотя datomic free все еще существует, он немного отстает в возможностях. Cognitect представила новую версию Pro Starter, которую они считают лучшим способом начать работу. Это также бесплатно и дает бессрочную лицензию. Ограничение касается только продолжительности бесплатных обновлений, которые вы получаете, ограниченной одним годом.

Вот последнее руководство по установке: https://docs.datomic.com/on-prem/dev-setup.html

Однако, если вы хотите только попробовать, вам, вероятно, лучше сначала использовать in-memory: https://docs.datomic.com/on-prem/getting-started/connect-to-a-database.html

Обратите внимание, что datomic cloud — еще более новый продукт. Но даже при рассмотрении облачных сред сначала не кажется необоснованным изучение локальной среды. Если это так, просто имейте в виду, что нужно сосредоточиться на изучении клиентского API, а не однорангового узла, потому что одноранговые узлы не существуют в облаке datomic (на самом деле они существуют, как одноранговый сервер... это то, что легковесные клиенты затем подключаются to, для выполнения запросов).

person mwal    schedule 20.04.2020