Все здесь говорят о том, как это исправить, но позвольте мне рассказать о типичном сценарии, где это может произойти для вас.
КОРОТКИЙ ОТВЕТ: изменение разделителя строк по той или иной причине может вызвать ошибку проверки контрольной суммы и не будет отображаться в коде
изменения.
Почему это произошло со мной? Пожалуйста, прочитайте ниже ..
Предположим, у вас есть сервер Tomcat, и в развертывании WAR время от времени участвуют несколько человек. Каждый использует INTELLIJ IDEA в LINUX, но один из членов команды почему-то переключается на WINDOWS.
Теперь, когда ЧЕЛОВЕК WINDOWS создаст WAR, он может не заметить, что выбор разделителя строк по умолчанию в INTELLIJ IDEA для WINDOWS - это CRLF, но все предыдущие сборки, построенные на машине LINUX, которая использует LF-разделитель строк.
Изменение в разделителе строк влияет на все текстовые файлы, включая файлы SQL. Так что вы, возможно, использовали следование, как моя команда, в своем скрипте liquibase
changeSet(author: "aditya", id: "1335831637231-1") {
sqlFile( path: "liquibase/quartz_oracle_tables.sql", "stripComments": true)
}
и контрольная сумма файла не будет совпадать с уже сохраненной в базе данных ошибкой проверки контрольной суммы.