Mac OS 10.14.1 Mojave
Liquibase: 3.6.2
Spring boot: 2.1.2.RELEASE
Итак, у нас было приложение dropwizard, которое использовало liquibase,Мы перенесли это приложение в springboot, переместились по XML-файлу и запустили его.
Мы получили исключение oracle.jdbc.OracleDatabaseException: ORA-00955 при запуске нашего кода, так что очевидно, что liquibase былпытаясь запустить наш набор.
Мы посмотрели в таблицу DATABASECHANGELOG и увидели, что пути к файлу не совпадают, поэтому мы повторно синхронизировали все с помощью команды changelogSync, и она создала для нас новые записи с правильными именами файлов.
при повторном запуске кода мы все еще сталкиваемся с той же проблемой, он пытается запустить наш набор, когда у нас уже есть таблицы в базе данных:
oracle.jdbc.OracleDatabaseException: ORA-00955
При отладке мы можем увидеть следующее в журналах жидкости: он генерирует MD5 из нашего xml, затем генерирует MD5 из уже сгенерированного MD5 вбаза данных!?
2019-02-15 16:22:42.158 DEBUG 51968 --- [ main] liquibase.util.MD5Util : Computed checksum for createTable:[
columns=[
[
[
nullable="false"
primaryKey="true"
]
name="LOAN_COLLECTION_ID"
type="varchar(56)"
],
[
[
nullable="false"
]
name="ZIP_CODE"
type="varchar(6)"
],
[
[
nullable="true"
]
name="BANK_NAME"
type="varchar(56)"
],
... [truncated in log] as 6655e2c8d7983a338d41895acba0b208
2019-02-15 16:22:42.160 DEBUG 51968 --- [ main]
liquibase.util.MD5Util : Computed checksum for
8:6655e2c8d7983a338d41895acba0b208: as
97e4d04847a5754a05595ac8cdf76cd8
Я не понимаю следующее:
chksum из базы данных: 8: 6655e2c8d7983a338d41895acba0b208
Сгенерированный chksum из нашего liquibasefile: 6655e2c8d7983a338d41895acba0b208
Сгенерированный chksum 076 550 * * * * * * 095 * 8501037 *
- Во-первых, что такое префикс 8 в chksum в базе данных?
- Почему он запускает chksum из базы данных в генераторе MD5 и генерирует новую chksum?97e4d04847a5754a05595ac8cdf76cd8
Что я делаю не так?