我正在尝试使用 Flyway 对 Clickhouse 数据库进行版本控制。我的
flyway.conf
文件如下所示:
flyway.url=jdbc:clickhouse://<host>:<port>/<database>?ssl=true
flyway.user=<user>
flyway.password=<password>
我想使用CLI工具来使用flyway,并且通过执行以下命令我有一个正在运行的fly way的docker镜像(从本教程获得)
docker pull redgate/flyway
docker run --rm redgate/flyway
运行
docker run --rm -v <paths> redgate/flyway migrate
后,出现以下错误:
ERROR: No database found to handle jdbc:clickhouse://<host>:<port>/<database>?ssl=true
我的连接需要 SSL。
根据此clickhouse文档,我知道flyway支持clickhouse,但不确定
flyway.conf
设置应该是什么样子。
所以......看来你需要的不仅仅是clickhouse jdbc jar来做到这一点(并且有一个针对flyway人员的开放PR:https://github.com/flyway/flyway/pull/3611)
我做了什么:
创建了一个非常简单的pom.xml,仅用于下载所有clickhouse jdbc依赖项
从创建 clickhouse 插件的人那里克隆了 Flyway 的分支(从这里:https://github.com/sazonov/flyway/tree/clickhouse-support,请注意,该插件位于分支“clickhouse-support”上) )
创建了一个简单的 Dockerfile 以添加基础 Flyway/flyway docker 映像上的所有内容:
3.1) 驱动程序的依赖项(复制到 /flyway/drivers/ dir) 3.2) 新的 jar 文件
毕竟,我能够在 Clickhouse 上进行迁移