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

将Liquibase changelog移植到不同的RDBMS

龚威
2023-03-14

解决这种迁移的合适方法是什么?扔掉changelog历史记录,使用修改后的changelog从头重新构建架构,然后迁移数据?有更好的方法吗?

共有1个答案

冀啸
2023-03-14

您可以修改变更集,使其对oracle和postgresql有效,然后在它们内部提供有效的校验和(也许还有创建校验和的方法)。

<changeSet id="id" author="author">
    <validCheckSum></validCheckSum>
    ...
</changeSet>

当您下次运行liquibase时,它会根据有效的校验和来检查校验和,如果它是正确的,那么它就不会失败。

有时您会发现,最好使用特定数据库中的某些类型(例如text vs varchar2),这样您就可以参数化这些类型。而且这不仅限于类型。

<property dbms="postgres" name="texttype" value="TEXT"/>
<property dbms="oracle" name="texttype" value="VARCHAR2"/>

<changeSet id="id" author="author">
    <createTable tableName="testtable">
        <column name="test" type="${texttype}" />
    </createTable>
</changeSet>
 类似资料:
  • 问题内容: 我已经尝试将invRegex.py移植到node.js实现了一段时间,但是我仍然在努力。多亏了ret.js标记生成器,我已经有了正则表达式分析树,并且运行良好,但是以内存高效的方式实际生成和连接所有不同元素对我来说是非常具有挑战性的。为简单起见,可以说我有以下正则表达式: 喂养到产生下列输出( tabbified 取更小的空间): 考虑到我能够获取每个单独的令牌并产生所有有效的单独输出

  • 我开始转换所有64位,并注意Mac汇编语法。 我有东西要组装,但我立即遇到了一个奇怪的分段错误: QUIT通过宏defword定义如下: null 附注:是的,我可以让琼斯在Docker图像中完美地工作,但这是重点之外的。我真的希望它在卡特琳娜64位工作,开箱即用。

  • 问题内容: SqlCommand.ExecuteScalar方法 执行查询,并返回查询返回的结果集中第一行的第一列。其他列或行将被忽略。 我猜这将涉及大量使用泛型。 假设我有一个SQLiteDatabase / Cursor对象。 问题答案: 这种逻辑对我有用:

  • 问题内容: 我有.Net系统中xml格式的私钥和公钥。我必须使用此密钥在Java中执行加密/解密。有什么办法吗? 公钥看起来像这样: 私钥: 我已经写了一些代码来加密数据,但是我不确定它是否正确。 如何从xml制作私钥以解密数据? 问题答案: 在您的示例中,这是进行Base64解码吗?看起来您可能正在依赖它,并且依赖那些内部类通常不是一个好主意(例如,其他JVM不会拥有它)。您可以使用具有Base

  • 问题内容: 将iPhone应用程序移植到Android的最有效方法是什么?我知道苹果不喜欢第三方非目标C平台为其平台生成代码…但是有没有可以将iPhone应用程序转换为Android友好代码的东西? 如果不是,那么人们如何为他们现有的iPhone应用程序创建Android版本? 谢谢 问题答案: 没有任何东西可以移植您的应用程序。您可以使用第三方工具来创建可同时在两者中使用的应用程序。这就是Tit

  • 这里是一个JavaScript部分,它用AES加密解码字符串 我试图用python编写一个类似的解码函数,并导入AES。 谁能帮我做这个吗。我无法找出js到python的所有等效代码。 我查了这个页面Python AES解密例程(代码帮助)和 AES-加密与加密(node-js)/解密与Pycrypto(python) 不确定他们的代码是否与我这里的js相似 这在python中是什么意思 我从另一