我将我的Clojure应用程序部署到 AWS ,当我的用户开始使用我的应用程序时发生了一段时间后发生的事情和Datomic Transactor重新启动(出于某种原因),我的应用程序变得没有响应,所以我重新启动了我的应用程序服务器( AWS )重新 Build 交易者连接)然后没有用户数据,根本没有数据!?
我使用相同的 URI ("datomic:ddb://us-east-1/my-table/my-db"),我也没有调用delete-db或类似的功能 .
我只调用d / create-database和d / connect来连接到Datomic .
它发生在发展我,但我不关心那个时间,因为我认为我做错了什么或类似的东西 .
如何恢复旧数据?
P.S:我也可以看到DynamoDB表有一些类似900KB的存储空间我假设我的数据有哪些?只有几个用户 .
我的Datomic版本: "0.9.5561"
这是我的 code :
(defn establish-conn
[]
(try
;conf/get returns DB URI like: "datomic:ddb://us-east-1/my-table/my-db"
(d/create-database (conf/get :db-uri))
(reset! conn (d/connect (conf/get :db-uri)))
(catch Throwable t
(log/error "Could not establish db conn." t))))
此外,我有此代码用于从Transactor故障/不可用等恢复连接 .
(defn fix-if-conn-ex
;;getting exception's error message
[err-msg]
(when (any? (str/includes? err-msg %) [":db.error/connection-released"
":db.error/transactor-unavailable"])
(db/establish-conn)))
1 回答
我无法在我的暂存环境中使用最新的Datomic版本
"0.9.5561.56"
重现该问题,我认为它已经解决了 .