【问题标题】:LiquiBase - Cannot find database driver liquibase.ext.hibernate.database.connection.HibernateDriverLiquiBase - 找不到数据库驱动程序 liquibase.ext.hibernate.database.connection.HibernateDriver
【发布时间】:2021-02-23 04:20:41
【问题描述】:

我正在尝试在我的项目中配置 liquibase 并在数据库和我的实体之间生成差异文件,但我遇到了错误。

当我运行 liquibase diff 时,我收到下一个错误:

Starting Liquibase at 09:24:42 (version 4.1.1 #10 built at 2020-10-12 19:24+0000)
Unexpected error running Liquibase: java.lang.RuntimeException: Cannot find database driver: liquibase.ext.hibernate.database.connection.HibernateDriver
For more information, please use the --logLevel flag

liquibase.properties 文件:

url=jdbc:sqlserver://localhost:1490;databaseName=Explorers
username=sa
password=pwd_Admin
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
classpath=sqljdbc42.jar
referenceUrl=hibernate:spring:com.example.explorers.domain?dialect=org.hibernate.dialect.SQLServer2012Dialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
referenceDriver=liquibase.ext.hibernate.database.connection.HibernateDriver
changeLogFile=..\\db\\db.changelog-master.xml

build.gradle 文件:

plugins {
    id 'org.springframework.boot' version '2.2.0.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
    id 'war'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '8'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation "org.liquibase.ext:liquibase-hibernate5:3.6"
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-data-rest'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '2.3.5.RELEASE'
    implementation 'com.microsoft.sqlserver:mssql-jdbc'
    implementation 'org.hibernate:hibernate-core'
    implementation 'org.hibernate:hibernate-entitymanager'
    implementation 'org.hibernate:hibernate-envers'
    implementation group: 'org.hibernate', name: 'hibernate-validator', version: '6.0.12.Final'
    compile(group: 'org.liquibase', name: 'liquibase-core', version: "4.1.1")
    compile group: 'org.liquibase.ext', name: 'liquibase-hibernate5', version: '3.6'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}

应用程序中是否缺少某些配置?

【问题讨论】:

  • 我在文档中看到:docs.liquibase.com/workflows/database-setup-tutorials/… 他们的 maven 示例存在依赖项,而您的示例没有,例如:javax.validation.validation-api 和 org.javassist.javassist,不确定是否如此很重要,但也许您必须按照文档暗示手动安装驱动程序?

标签: hibernate gradle liquibase liquibase-hibernate


【解决方案1】:

尝试使用相同的版本,例如:

compile "org.liquibase:liquibase-core:4.4.2"
compile "org.liquibase.ext:liquibase-hibernate5:4.4.2"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2021-10-25
    • 2013-01-08
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 2020-08-17
    相关资源
    最近更新 更多