【问题标题】:How to list avaliable databases in datomic, using the datomic Clojure REPL CLI interface如何使用 datomic Clojure REPL CLI 界面在 datomic 中列出可用数据库
【发布时间】:2020-06-08 14:16:05
【问题描述】:

您好,我是 datomic 数据库的新手, 我与 2x datomic 数据库有一个现有的数据连接。

我使用了来自https://docs.datomic.com/cloud/tutorial/client.html#prerequisites的信息

现在我必须硬编码数据库名称来创建备份。但是如何查询数据库的现有名称?我已经搜索了 datomic 站点上的文档,但无法弄清楚如何列出可用的数据库名称。例如创建数据库是这样的

开始repl

$ ./bin/repl

然后像这样连接和定义一个数据库

user=> (require '[datomic.api :as d])

现在创建第一个数据库

user=> (def db-uri "datomic:sql://firstDatabase?jdbc:postgresql://datomic-postgresql:5432/datomic?user=datomic&password=****")
user=> (d/create-database db-uri)

第二个数据库

user=> (def db-uri2 "datomic:sql://secondDatabase?jdbc:postgresql://datomic-postgresql:5432/datomic?user=datomic&password=****")
user=> (d/create-database db-uri2)

稍后,我想列出我的数据库名称而不想知道原始名称,我可以使用什么 api 调用?我找不到任何类似于:

user=> (d/list-database) ....?

也许无法使用 repl api?有什么解决办法吗?

【问题讨论】:

    标签: database clojure command-line-interface datomic


    【解决方案1】:

    感谢这个答案:

    https://forum.datomic.com/t/simplest-way-to-get-all-database-names/404/2

    我找到了一个名为 get-database-names 的 api 调用,它将显示所有创建的数据库,必须在名称所在的地方使用 *:

    (get-database-names uri)

    user=>   (d/get-database-names "datomic:sql://*?jdbc:postgresql://datomic-postgresql:5432/datomic?user=datomic&password=XXXX")
    2020-06-08 15:06:49.047 INFO  default    datomic.kv-cluster - {:event :kv-cluster/get-pod, :pod-key "pod-catalog", :phase :begin, :pid 271, :tid 11}
    2020-06-08 15:06:49.049 INFO  default    datomic.kv-cluster - {:event :kv-cluster/get-pod, :pod-key "pod-catalog", :msec 1.14, :phase :end, :pid 271, :tid 11}
    ("mydatabase1" "mydatabase2")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多