ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

java-Liquibase-校验和因不同的数据库供应商而异

2019-11-21 08:15:28  阅读:337  来源: 互联网

标签:liquibase sql java mysql sql-server


我尝试在MSSQL和MySQL上运行Liquibase校验和时遇到问题.

在我的基于MSSQL的数据库中,我有一个带有此校验和的变更日志条目:

3:cf2f5de7a1dcc738bbc185e25fbcf6c9

当我对该数据库运行liquibase时,它工作正常.

然后,我将changelog条目复制到我的MySQL数据库中并尝试运行,并得到以下错误:

myLiquibase.xml::1::Tobb is now: 3:cedf7a8ba54ea3f83141f79

我尝试将MSSQL中的校验和设置为null,以便重新生成校验和,并且校验和恢复为

3:cf2f5de7a1dcc738bbc185e25fbcf6c9

在MySQL中执行相同操作时,我得到以下校验和:

3:cedf7a8ba54ea3f83141f7987007deb7

因此,据我所见,根据它是在MSSQL还是MySQL中运行,Liquibase会生成不同的校验和.怎么会这样我以为校验和仅取决于liquibase脚本的实际内容?

解决方法:

是的,它取决于内容和数据库类型,因为实际上校验和不取决于您的变更集文本,而是取决于为当前数据库生成的sql,这对于不同的DB会稍有不同.

如果要避免校验和错误,可以在变更集中使用validCheckSum标记.

标签:liquibase,sql,java,mysql,sql-server
来源: https://codeday.me/bug/20191121/2050336.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有