Oracle 液化';generateChangelog';生成错误的架构(错误数据)

Oracle 液化';generateChangelog';生成错误的架构(错误数据),oracle,backup,liquibase,Oracle,Backup,Liquibase,在Oracle数据库上运行“generateChangelog”后,changelogFile对于某些字段具有错误的类型(甚至更好,只是错误的值),与使用的驱动程序无关。 更接近的是,一些原始列被转换为字符串(听起来不错),但像“E01005C684210002020000E10000000”这样的值被转换为[B@433defed“。这似乎有些不同。此外,这些是原始数据库内容和备份之间唯一与数据相关的差异。 当我尝试通过“更新”恢复数据库时,这些列显示问题“运行Liquibase时出现意外错误:

在Oracle数据库上运行“generateChangelog”后,changelogFile对于某些字段具有错误的类型(甚至更好,只是错误的值),与使用的驱动程序无关。 更接近的是,一些原始列被转换为字符串(听起来不错),但像“E01005C684210002020000E10000000”这样的值被转换为[B@433defed“。这似乎有些不同。此外,这些是原始数据库内容和备份之间唯一与数据相关的差异。 当我尝试通过“更新”恢复数据库时,这些列显示问题“运行Liquibase时出现意外错误:****:十六进制数无效”


有没有办法强迫liquibase将问题列保存为“原样”或其他任何方法来克服这种情况?还是它是一个bug?

我认为需要更多信息来诊断这个问题。理想情况下,如果您怀疑某个东西可能是bug,您可以提供三件事:

  • 您采取了哪些步骤(包括所用物品的版本、相关配置、发出的命令等)

  • 实际效果如何

  • 预期的结果是什么

  • 现在我们对1有了一些想法(在Oracle上运行generateChangelog,然后尝试运行update),但是我们缺少一些东西,例如Oracle数据库的结构是什么,Oracle/Liquibase的版本是什么,以及实际发出的命令是什么。我们对实际结果有一些想法(Oracle中类型为RAW的列在变更日志中转换为字符串,并且这些列中的数据也可能转换为不同于您预期的值)以及对预期结果的一些了解(您预期原始数据将保存在变更日志中,然后能够重新部署该更改)

    也就是说,使用Liquibase备份和恢复数据库(尤其是具有RAW/CLOB/BLOB类型列的数据库)可能不是一个好主意

    Liquibase的主要目的是帮助管理数据库结构的更改,而不是管理其中包含的数据