首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能使用joplin迁移Cassandra

不能使用joplin迁移Cassandra
EN

Stack Overflow用户
提问于 2018-10-19 13:44:27
回答 2查看 68关注 0票数 0

我正在尝试使用乔普林为我的Cassandra数据库运行迁移。但是,当我运行lein migrate dev时,我会得到以下异常:

代码语言:javascript
复制
Migrating #joplin.cassandra.database.CassandraDatabase{:hosts [127.0.0.1:9042], :keyspace test} 

Exception in thread "main" java.lang.IllegalArgumentException: No matching ctor found for class com.datastax.driver.core.policies.DCAwareRoundRobinPolicy, compiling:(clojurewerkz/cassaforte/policies.clj:38:3)

我认为问题可能在于我的迁移,但我不知道我做错了什么。

project.clj

代码语言:javascript
复制
(defproject app "0.1.0"
:dependencies [[org.clojure/clojure "1.8.0"]
             [clojurewerkz/cassaforte "3.0.0-alpha1"]

             [joplin.core "0.3.10"]
             [joplin.cassandra "0.3.10"]

             [cc.qbits/alia "4.2.3"]
             [cc.qbits/hayt "4.0.2"]
             ]

:main app.cli.core

:source-paths ["src"]

:resource-paths ["resources"]

:test-paths ["test"]

:profiles {:uberjar {:aot :all}}

:aliases {"migrate" ["run" "-m" "joplin.alias/migrate" "config.edn"]
        "seed" ["run" "-m" "joplin.alias/seed" "config.edn"]
        "rollback" ["run" "-m" "joplin.alias/rollback" "config.edn"]
        "reset" ["run" "-m" "joplin.alias/reset" "config.edn"]
        "pending" ["run" "-m" "joplin.alias/pending" "config.edn"]
        "create" ["run" "-m" "joplin.alias/create" "config.edn"]}
)

config.edn

代码语言:javascript
复制
{:migrators    {:cass-mig "resources/migrators"}
:seeds        {:cass-seed "seeds.cass/run"}
:databases    {:cass-dev {:type :cass, :hosts ["127.0.0.1:9042"], 
:keyspace "test"}}
:environments {:dev [{:db :cass-dev, :migrator :cass-mig, :seed :cass-seed}]}}

迁徙者

代码语言:javascript
复制
(ns migrators.20180717174605-test
  (:use [joplin.cassandra.database])
  (:require [clojurewerkz.cassaforte.client :as client]
[clojurewerkz.cassaforte.cql :refer :all]))

(defn up [db]
  (let [conn (client/connect (:hosts db))]
    (create-keyspace conn "test")))

(defn down [db]
  (let [conn (client/connect (:hosts db))]
    (drop-keyspace conn "test")))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-07 14:46:33

对于joplin 0.3.9+,使用alia & hayt代替cassaforte,参见change doc 这里

票数 0
EN

Stack Overflow用户

发布于 2018-10-20 12:04:19

问题是cc.qbits/alia依赖于Cassandra驱动程序3.5.0,而版本3.0.0-alpha1 1的cassaforte依赖于较早的版本- 2.1.6。看起来,alia的依赖遮挡了cassaforte,并且找不到DCAware策略的构造函数(在驱动程序3.x中,构建器被使用而不是直接构造函数)。

您可以从存储库中安装cassaforte -它是用于3.x驱动程序的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52893615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档