我有一个 jhipster 生成的数据库,我正在尝试运行此命令:
mvn liquibase:diff
但是现在我收到以下错误:
Failed to execute goal org.liquibase:liquibase-maven-plugin:4.6.1:diff (default-cli) on project product:
Error setting up or running Liquibase:
liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: Connection could not be created to hibernate:spring:com.moniesta.product.domain?dialect=&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy with driver com.mysql.jdbc.Driver. Possibly the wrong driver for the given database URL
我的数据库在 docker 中运行,并在其 docker-compose 中配置如下:
products-mysql:
image: mysql:8.0.28
platform: linux/x86_64
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_DATABASE=products
command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8mb4 --explicit_defaults_for_timestamp
ports:
- '3306:3306'
这就是我的 pom 为 liquibase 命令配置的方式:
<configuration>
<changeLogFile>${project.basedir}/src/main/resources/config/liquibase/master.xml</changeLogFile>
<diffChangeLogFile>${project.basedir}/src/main/resources/config/liquibase/changelog/${maven.build.timestamp}_changelog.xml</diffChangeLogFile>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/product?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true</url>
<username>root</username>
<emptyPassword>true</emptyPassword>
<referenceDriver>com.mysql.jdbc.Driver</referenceDriver>
<contexts>local</contexts>
<referenceUrl>hibernate:spring:com.moniesta.product.domain?dialect=&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy</referenceUrl>
<verbose>true</verbose>
<logging>error</logging>
<contexts>!test</contexts>
</configuration>
我看到它尝试正确连接到数据库,但驱动程序失败,但这是一个 mysql 数据库,所以驱动程序不应该是 mysql.jdbc 吗?我使用的是mysql8
您尝试过“com.mysql.cj.jdbc.Driver”吗?
对我来说,可行的解决方案如下: 液体库版本:4.29.2 数据库:Postgres
liquibase init project
liquibase update
这成功执行了脚本,无需在属性文件或任何jdbc jar中添加任何驱动程序(因为internal/lib已经有postgres驱动程序jar)