我正在使用帶有彈簧靴的 liquibase。我有 SQL 變更集。我沒有更改 liquibase SQL 腳本中的任何內容。但我得到以下錯誤
在類路徑資源中定義名稱為“liquibase”的 bean 創建錯誤:呼叫 init 方法失敗;嵌套例外是 liquibase.exception.ValidationFailedException: Validation Failed:\r\n 1 change sets check sum\r\n
liquibase/db/0001_sample.sql::sample1_2::admin 是:8:600cf084d9c1ea85df2ddaa4f7a8a309 但現在是:8:47d241e6e1636203501ec72cafe \r\n", "class": "org.springframework.beans.factory.BeanCreationException",
下面是我的0001_table1.sql
--liquibase formatted sql
--changeset admin:sample1_1
create table....
--rollback DROP TABLE tablename
--changeset admin:sample1_2
add column....
我認為這是由于格式從我的 IDE 更改為另一個 ide。但我喜歡修復它。我不是在尋找清除校驗和。請建議在使用帶有 liquibase 的普通 SQL 時如何處理。
注意:我看過 xml 版本的示例,但我正在尋找帶有 liquibase 的 SQL。
uj5u.com熱心網友回復:
是的,你真的不能那樣做。應用變更集后,它會在配置資料庫中記錄校驗和,任何更改(甚至空格)都會導致此驗證錯誤。如果您使用的是 maven 或 gradle,您可以清除校驗和,它們將在下次運行時使用 liquibase 插件上的 clearChecksums 目標重新計算。
您應該密切注意,當您使用 SQL 選項時(通過<include file="我假設),它不會區分空格上的校驗和,因此可能存在您沒有看到的其他差異。如果您確信更改無關緊要,請添加
--validCheckSum 8:47d241e6e1636203501ec72cafe4e5b6
到您的 SQL 檔案的標題,這將告訴 liquibase 即使原始校驗和計算為8:600cf084d9c1ea85df2ddaa4f7a8a309,8:47d241e6e1636203501ec72cafe4e5b6也是該檔案的有效校驗和。
一些好的建議是使用您的 RCS 對這些檔案進行更嚴格的控制,否則您將不斷與此作斗爭。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/459167.html
