You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liquibase在Databricks中无法创建DatabaseChangeLog表求助

解决Liquibase与Databricks集成时数据类型不支持的问题

问题核心

你遇到的UNSUPPORTED_DATATYPE错误,根源是Databricks SQL不支持datetime数据类型,但Liquibase默认创建DATABASECHANGELOG表时使用了该类型。正常情况下,Liquibase的Databricks扩展会自动将数据类型映射为Databricks兼容的TIMESTAMP,但你的配置存在两处关键问题:

错误点排查

  1. 加载了错误的Jar包:你的--classpath指向的是liquibase-databricks-1.4.0-javadoc.jar,这是仅包含文档的Jar,并非实际的Liquibase Databricks扩展实现包,导致扩展未生效,无法处理数据类型映射。
  2. 配置语法细节错误:JAVA_OPTS的引号未正确闭合,volumes配置存在缩进问题。

解决方案

1. 替换正确的扩展Jar包

下载实际的Liquibase Databricks扩展Jar:liquibase-databricks-1.4.0.jar,将其放入本地./liquibase/lib目录,替换掉原有的javadoc Jar。

2. 修正Docker Compose配置

以下是修正后的完整配置,重点调整了classpath、修复语法错误,并添加了明确的数据库类型指定:

services:
  liquibase_poc:
    environment:
      - JAVA_OPTS=--add-opens=java.base/java.nio=ALL-UNNAMED
    container_name: popeyes_spinach
    image: liquibase/liquibase
    command: liquibase update 
      --url='jdbc:databricks://adb-redacted.3.azuredatabricks.net:443/default;transportMode=http;ssl=1;AuthMech=3;httpPath=/sql/1.0/warehouses/redacted;ConnCatalog=188_edap_dev;ConnSchema=databricks_cicd_scratch;' 
      --username='redacted' 
      --password='redacted' 
      --driver='com.databricks.client.jdbc.Driver' 
      --database-class=liquibase.databricks.DatabricksDatabase
      --classpath=/liquibase/lib/liquibase-databricks-1.4.0.jar  
      --changelog-file='changelog.xml'
    volumes:
      - ./liquibase/scripts:/liquibase/scripts
      - ./liquibase/changelog.xml:/liquibase/changelog.xml
      - ./liquibase/lib:/liquibase/lib

3. 关键调整说明

  • --database-class=liquibase.databricks.DatabricksDatabase:显式指定Databricks数据库类型,确保扩展逻辑被触发,自动完成数据类型的兼容映射。
  • 修正JAVA_OPTS的引号错误:移除多余的闭合引号,避免JVM参数解析失败。
  • 统一volumes缩进:修复配置文件的格式问题,确保Docker Compose能正确解析。

验证操作

重启Docker Compose服务后,Liquibase会通过Databricks扩展创建使用TIMESTAMP类型的DATABASECHANGELOG表,解决数据类型不兼容的问题。

内容的提问来源于stack exchange,提问作者user6866797

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 00:02:07