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

Liquibase在迁移到Spring Boot2时重置校验和并尝试重新运行变更集

魏刚豪
2023-03-14

有人能帮我一些建议我可以尝试吗?该应用程序在没有Spring Boot的情况下使用Liquibase 3.4.1运行良好。

下面是我的相关application.yml配置:

spring:
  datasource:
    url: ${RDS_URL}
    username: ${RDS_USERNAME}
    password: ${RDS_PASSWORD}
  jpa:
    show-sql: ${HIBERNATE_SHOW_SQL}
    hibernate:
      ddl-auto: none
    properties:
      generate_statistics: true
      globally_quoted_identifiers: true
      format_sql: ${HIBERNATE_FORMAT_SQL}
  liquibase:
    enabled: true
    change-log: classpath:/liquibase/changelog/db.changelog-master.xml
    user: ${RDS_USERNAME}
    password: ${RDS_PASSWORD}
    url: ${RDS_URL}

共有1个答案

令狐俊风
2023-03-14

Spring 1.5.x使用LiquiBase-Core-3.5.3.jar,而2.0.x使用LiquiBase-Core-3.5.5.jar。

liquibase代码上有一个不同的代码。如果查看LiquiBaseProperties.java,您将在LiquiBase-Core-3.5.5.jar上看到前缀=“spring.liquiBase”,在LiquiBase-Core-3.5.3.jar上看到前缀=“LiquiBase”。

现在就说你的意思吧。请查看yur liquibase版本并相应地使用前缀。如果使用旧版本,请从LiquiBase中删除spring

spring:
  datasource:
    url: ${RDS_URL}
    username: ${RDS_USERNAME}
    password: ${RDS_PASSWORD}
  jpa:
   show-sql: ${HIBERNATE_SHOW_SQL}
   hibernate:
     ddl-auto: none
  properties:
     generate_statistics: true
     globally_quoted_identifiers: true
     format_sql: ${HIBERNATE_FORMAT_SQL}

liquibase:
    enabled: true
    change-log: classpath:/liquibase/changelog/db.changelog-master.xml
    user: ${RDS_USERNAME}
    password: ${RDS_PASSWORD}
    url: ${RDS_URL}
 类似资料:
  • 所以我有几个可重复的迁移。 创建一个视图(删除它 现在假设我修改了第一次迁移,结果视图不再包含第二次迁移使用的列。Flyway将愉快地重新运行第一次迁移,第一个视图将被重新创建,第二个视图将由于级联选项而被删除。 在此之后,我希望第二次(依赖的)迁移也会运行,并且会抛出一个错误(因为它使用了一个不再存在的列)。 这样可能吗? 以某种方式强制flyway检查现有迁移的结果是否不再存在?或者可能存在类

  • Flyway 4.2.0中的可重复Java迁移存在问题。 例如,我编写了一个可重复的Java迁移,它为每个具有特定列的表创建一个触发器。此迁移的ChecksumProvider计算缺少触发器的表的连接名称的哈希代码。 > 当表列表不为空时,hashcode不同于零(将其命名为xxx),并且对于每个表,都会向数据库添加一个合适的触发器。在这种情况下,hascode xxx被写入“schema_ver

  • 我使用的是Liquibase 3.0.2、Ant task updateDatabase和直接在SQL脚本中定义的变更集,使用的注释如下 等 第一次运行工作正常,执行所有更改集并部署DB对象(oracle)。我可以看到DATABASE CHANGELOG和DATABASE CHANGELOGLOCK表填满了。 然后,我尝试用相同的精确配置重新运行Ant任务,希望Liquibase会说“好的,所有的

  • 我们使用Liquibase 3.2和Java 6。有没有一种方法可以强制Liquibase重新计算校验和,而不需要从我们的Liquibase文件中重新运行相同的语句?在我们的数据库中,我运行这个... 但是,当我运行Liquibase更改脚本时,某些执行仍然失败,并出现以下错误…… 这是脚本抱怨的更改集之一…… 正如我所说,我只想重新计算校验和(必须这样做,因为我们正在更改Liquibase版本)

  • 我们正在尝试将迁移作为.sql文件置于版本控制之下。开发人员将编写一个vn__*.sql文件,提交到版本控制,并且每5分钟运行一次的作业将自动迁移到开发和测试数据库。一旦更改被证明没有引起问题,其他人就会运行一个手动作业来在生产上运行迁移。 我的问题: 我有一个演示迁移,创建了几个表。我将v4__demotable.sql检查到PC上的版本控制中。 阅读文档时,开发人员似乎建议我应该创建一个新的v

  • 从升级到时,我收到以下错误,尽管SQL脚本没有改变: Spring Boot建议 为确保架构升级顺利进行,请按照以下说明操作: > < li> 首先将您的1.5.x Spring Boot应用程序升级到Flyway 4(撰写本文时为4.2.0),请参见Maven和Gradle的说明。 将架构升级到 Flyway 4 后,升级到Spring启动 2 并再次运行迁移以将应用程序移植到 Flyway 5