Clojure repl (수정 된 스키마와 초기 데이터 세트로 https://github.com/swannodette/om/wiki/Intermediate-Tutorial 자습서의 'util.clj'사용) 아래의 'load-data'를 사용하여 데이터를로드합니다. 새로운 Datomic 데이터베이스 인 경우 데이터는 Datomic 콘솔에 나타나지 않습니다.Datomic의 '거래'에서 세부 정보/오류 메시지를받는 방법
그러나 repl에서 'load-data'작업을 수행 할 때 오류 메시지가 표시되지 않습니다.
스키마는 Datomic 콘솔에서 예상대로 나타납니다. 튜토리얼에서 수정되지 않은 코드를 사용하여 스키마와 데이터를 모두 볼 수있다.
초기 데이터를 설정하는 코드에 문제가 있어야합니다. 하지만 오류 메시지가 없기 때문에 어디 있는지 알 수 없습니다.
Datomic 데이터베이스의 init 트랜잭션에서 오류 메시지 및 기타 세부 정보를 얻으려면 어떻게해야합니까?
코드 :
(defn transact-all [conn f]
(doseq [txd (read-all f)]
(d/transact conn txd))
:done)
(defn load-schema []
(transact-all (get-conn) (io/resource "data/schema.edn")))
(defn load-data []
(transact-all (get-conn) (io/resource "data/initial.edn")))
;; Logging provides some comparison with the known working scenario, but so far I only can log entity id's:
(defn read-log []
(d/q '[:find ?e
:in ?log ?t1 ?t2
:where [(tx-ids ?log ?t1 ?t2) [?tx ...]]
[(tx-data ?log ?tx) [[?e]]]]
(d/log (get-conn)) #inst "2014-07-14" #inst "2015-07-01")
)
출력을 덤프하려고했지만 repl에서 실행하면 출력을 얻지 못합니다 (': done'이외) - 잘못된 구문입니까? – christopherbalz
(위의 덧글 다시) : 출력을 덤프하려고하면, 나는 이것을 시도했지만 repl ('done :'이외의)에서 실행될 때 아무런 결과도 얻지 못합니다 - 단지 잘못된 구문입니까? '(println @ (d/transact conn txd)))' – christopherbalz
잘못된 디렉토리에 있었기 때문에 올바른 버전을 실행하지 못했습니다. 올바른 디렉토리로 전환하면 * 잘 작동합니다. 내'IllegalArgumentExceptionInfo : db.error/not-a-db-id 잘못된 db/id : # db/id [: db.part/stage -900] datomic.error/arg (error.clj : 55)'. – christopherbalz