当前位置: 首页 > 知识库问答 >
问题:

liquibase DiffChangelog gradle任务出错java.lang.不支持操作异常:应用程序必须提供JDBC连接

步胜
2023-03-14

我正在尝试为带有嵌入式postgressql后端(基于磁盘)的Spring启动微服务生成liquibase更改日志

./gradlew -PexcludeLog4j=true liquibaseDiffChangelog -PrunList=diffLog -PliquibaseTimestamp=1620929423 -Purl="jdbc:h2:mem:~/workspace/test/testms/build/h2db"

总是犯错误

java.lang.不支持的操作html" target="_blank">异常:应用程序必须在org.hibernate.engine.jdbc.connections.internal.提供JDBC连接UserSuppliedConnectionProviderImpl.getConnection(UserSuppliedConnectionProviderImpl.java:44)在org.hibernate.engine.jdbc.env.internal.Jdbc环境发起者$ConnectionProviderJdbcConnectionAccess.obtain连接(Jdbc环境nitiator.java:180)在<-plhd--7/>Jdbc环境nitiator.initiate服务(Jdbc环境nitiator.java:68)在org.hibernate.engine.jdbc.env.internal.Jdbc环境nitiator.initiate服务(Jdbc环境nitiator.java:35)在org.hibernate.boot.registry.internal.标准服务注册mpl.initiate服务(标准服务注册mpl.java:101)在org.hibernate.service.internal.AbstractServiceRecstryImpl.create服务(AbstractServiceRecstryImpl.java:263)在org. hibernate. service. interal. AbstractServiceRecstryInp. getService(AbstractServiceRecstryInp. java: 237)在org. hibernate. id. factory. interal. AbstractServiceRecstryInp. getService(AbstractServiceRecstryInp. java: 214)在org. hibernate. id. factory. interal. Default标识生成器工厂. injectServices(Default标识生成器工厂. java: 152)在org. hibernate. service. interal. AbstractServiceRecstryInp. java: 286)在org. hibernate. service. interal. AbstractServiceRecstryInp.初始化服务(AbstractServiceInp. java: 243)在liquibase上的main 1美元. lambda$run0美元(Main. java: 367)。在liquibase上的Scope. lambda$儿童0美元(Scope. java: 160)。在liquibase上的Scope. child(Scope. java: 169)。在liquibase上的Scope. child(Scope. java: 159)。在liquibase上的Scope. child(Scope. java: 138)。在liquibase上的main 1美元. run(Main. java: 366)。在liquibase上的Main 1美元. run(Main. java: 196)。在liquibase上的Scope. child(Scope. java: 169)。在liquibase上的Scope. child(Scope. java: 145)。在liquibase上的Main。集成。命令行上的Main. run(Main. java: 196)。Main. main(Main. java: 158)最佳实践:由差异变更日志/生成变更生成

有什么想法吗?

共有1个答案

魏臻
2023-03-14

为了生成增量差异,我们需要先运行任务liquibase Update,然后再运行liquibase DiffChangelog

添加了以下扩展

task generateLiquibaseChangelog {
    dependsOn 'clean'
    dependsOn 'liquibaseUpdate'
    dependsOn 'liquibaseDiffChangeLog'

    tasks.findByName('liquibaseUpdate').mustRunAfter 'clean'
    tasks.findByName('liquibaseDiffChangeLog').mustRunAfter 'liquibaseUpdate'

    project.ext."excludeLog4j"="true"
    project.ext."runList"="diffLog"
    project.ext."liquibaseTimestamp"=getTimestamp()
}

def getTimestamp() {
    return new Date().format('yyyyMdHHms')
}
 类似资料:
  • 如果我没有以编程方式设置任何东西,只是调用并使用hibernate.properties(如下所示),一切都很好。一旦我尝试以编程方式提供用户名、密码和连接url,我就会得到一个奇怪的异常,提示hbm文件。我错过了什么? 现在hibernate.properties是 代码 例外情况 我现在得到了这个异常,一个用于我的hbm文件中的每个条目。 如果我使用所有而没有代码(代码中没有. setProp

  • 问题内容: 如果我没有以编程方式设置任何内容,而只是调用并使用hibernate.properties(如下所示),那么一切都将很好。尝试以编程方式提供用户名,密码和连接URL时,我会收到奇怪的异常提示,提示是hbm文件。我想念什么? 按照@Kshitij的建议。进行混合模式。 *现在 *的hibernate.properties 是 编码 例外 我现在得到这个异常,我的hbm文件中的每个条目都有

  • 问题内容: 我写了一些代码来测试我的Hibernate配置,但是遇到了这样的错误消息: 我的文件结构如下: 这不是一个Web应用程序,它只是一个普通的Java项目。hibernate.cfg.xml如下所示: 主要功能中的代码如下: 根据错误消息,错误发生在 我是Hibernate的新用户,并且已经多次检查了我的配置文件。有谁可以帮助您找出问题所在?谢谢! 编辑:Hibernate版本是4.3.5

  • 我编写了一些代码来测试Hibernate的配置,但是我遇到了这样的错误消息: main函数中的代码如下所示: 根据错误消息,错误发生在 我是Hibernate的一个新用户,我已经检查了我的配置文件很多次了。有人能帮我找出问题所在吗?谢了!

  • 通过执行下面的代码,为什么我得到了 这是代码。

  • 我不知道;我不太明白在哪里可以抛出这个异常。 例如,我正在实现