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

Liquibase中Oracle插件的变更集始终为空

蓬长恨
2023-03-14
  <databaseChangeLog
 xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:ora="http://www.liquibase.org/xml/ns/dbchangelog-ext"
 xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">

<changeSet author="myAuthor" id="xxx">
    <ora:encapsulateTableWithView tableName="TABLENAME"/>
</changeSet>
</databaseChangeLog>

我还将liquibase-oracle-3.3-snapshot.jar添加到liquibase.properties文件中的类路径中,但这没有用。在带有特定Oracle插件标记的DATABASECHANGELOG表中跟踪的每个变更集都具有相同的校验和(7:D41D8CD98F00B204E9800998ECF8427E),并在Description中报告为“空”。

知道吗?

共有1个答案

厍彭薄
2023-03-14

我发现了问题所在:我使用CLI命令启动

java -jar liquibase.jar --changeLogFile=myChangeLog.xml update

但是变更集始终为空:这是因为LiquiBase.jar没有从LiquiBase-oracle-3.3-snapshot.jar获取类。我在PATH中的环境变量处添加了liquibase.bat,新命令是

liquibase --changeLogFile=myChangeLog.xml update

而且效果很好。

 类似资料:
  • 我试图在liquibase中执行以下,它应该创建一个索引。如果索引不存在,则它应该静默地失败:

  • 我们使用liquibase对数据库进行源代码控制。最初,我们从Postgres开始,创建了数据类型为特定于Postgres的列的变更集。 例如,我们有一个变更集,它创建了具有“JSON”类型字段的表。现在,我们想转移到其他数据库。因此,当我们针对另一个数据库运行变更集时,它无法创建表。我尝试添加“failOnError=false”。但是,后面的变更集失败,因为该表不存在。 您能建议如何重构旧的变

  • 在liquibase中是否有一种方法来创建java代码更改集(即提供一个java类,它将接收一个JDBC连接并在数据库中执行一些更改)? (我知道飞翔道有这样特点)

  • 我在酗酒方面遇到了麻烦。出于某种原因(我没有更改任何现有的变更集或其他东西),它试图应用已经在base中的变更集。所以我得到了一些错误,比如“关系”表“已经存在”。 我找到了这个标签-

  • 我想用liquibase变更集进行模拟数据的集成测试,如何使其不影响真实数据库?我从这里找到了部分想法,但我使用的是springboot,我希望有更简单的解决方案。

  • 我正在试用Liquibase,目的是尝试自动化数据库部署,并获得数据库更改的一些结构。 这里是我想评估自动回滚的变更集。现在,我试图在中引入一个错误,并希望在错误发生后运行,它还会从表中删除列。 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd“> 但是真正发生的是表中没有条目。但表中的列仍然存在。我确实查看了liqui