Cloud Spanner 与 Liquibase 的集成失败

问题描述

我在尝试让 Liquibase 与 Spanner 集成时遇到问题。

我正在尝试利用 liquibase maven 插件和社区支持的 liquibase-spanner 扩展。不幸的是,当我在新数据库上运行 mvn liquibase:update 命令时,出现以下错误

enter image description here

我的 pom.xml 文件如下所示。

<groupId>XXXXXX/groupId>
<artifactId>spanner-data-model</artifactId>
<version>0.0.1</version>

<properties>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <maven.liquibase.version>4.3.1</maven.liquibase.version>
    <liquibase.version>1.0.1</liquibase.version>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-maven-plugin</artifactId>
            <version>${maven.liquibase.version}</version>
            <configuration>
                <propertyFile>src/main/resources/liquibase.properties</propertyFile>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>com.google.cloudspannerecosystem</groupId>
                    <artifactId>liquibase-spanner</artifactId>
                    <version>${liquibase.version}</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

我的 liquibase.properties 文件如下所示。

changeLogFile=/path/to/file/db.changelog-master.yaml
driver=com.google.cloud.spanner.jdbc.JdbcDriver
url=jdbc:cloudspanner:/projects/X/instances/X/databases/X

知道我做错了什么吗?感谢您的意见和想法!!

解决方法

我认为这是由 JDBC 驱动程序中缺少传递依赖引起的。您是否介意尝试将以下依赖项添加到您的 pom 文件中:

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-spanner-jdbc</artifactId>
  <version>1.19.0</version>
</dependency>

编辑:此问题已在 spanner-liquibase 库的 1.0.2 版中修复。