Datomic删除数据库

时间:2017-09-18 00:03:15

标签: clojure datomic

我将我的Clojure应用程序部署到 AWS ,当我的用户开始使用我的应用时,我还有 Datomic Transactor(EC2) DynamoDB 一段时间后发生了一些事情并且Datomic Transactor重新启动(出于某种原因),我的应用程序没有响应,所以我重新启动了我的应用程序服务器(重新建立了transactor连接),然后没有用户数据,根本没有数据!?

我使用相同的 URI “datomic:ddb:// us-east-1 / my-table / my-db”),我也不知道t调用delete-db或类似的函数。

我只调用d / create-database和d / connect来连接到Datomic。

在发展过程中发生了我,但我并不关心那段时间,因为我认为我做错了什么或类似的事情。

如何恢复旧数据?

P.S:我也可以看到DynamoDB表有一些类似900KB的存储空间我假设我的数据在那里有些怎么样?只有几个用户。

我的数据库版本:"0.9.5561"

这是我的代码

(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 个答案:

答案 0 :(得分:0)

我无法在我的暂存环境中使用最新的Datomic版本"0.9.5561.56"重现该问题,我认为已经解决了该问题。