JHipster: удаление поля из объекта: Liquibase не удаляет поле из базы данных: ошибка проверки не удалась - PullRequest
0 голосов
/ 24 апреля 2019

Итак, у меня есть сущность Jhipster, в которой я удаляю поле из команды «Модель сущности Jhipster» для сущности, которую я уже назвал Model. , Он удаляет поле из внешнего интерфейса и код Java, но столбец все еще находится в базе данных (на диске h2) вместе с данными для каждой строки в этом поле.

Я получаю эту ошибку при запуске весеннего приложения

 1 change sets check sum
      config/liquibase/changelog/20190411130704_added_entity_Model.xml::20190411130704-1::jhipster was: 7:03313fa12946fa4bb3e16f838f8dc4d7 but is now: 7:aed492b04b5a800b82655ff2eabd0f65


 liquibase.exception.ValidationFailedException: Validation Failed:
 1 change sets check sum
     config/liquibase/changelog/20190411130704_added_entity_Model.xml::20190411130704-1::jhipster was: 7:03313fa12946fa4bb3e16f838f8dc4d7 but is now: 7:aed492b04b5a800b82655ff2eabd0f65

1 Ответ

0 голосов
/ 24 апреля 2019

У вас есть эта ошибка, потому что ваш changeSet был изменен после последнего выполнения ликвидазы, следовательно, контрольная сумма была изменена.

Чтобы это исправить, добавьте тег <validCheckSum> к своему <changeSet>.

Как указано в ошибке, новая контрольная сумма равна 7:aed492b04b5a800b82655ff2eabd0f65.

Итак, добавьте <validCheckSum>7:aed492b04b5a800b82655ff2eabd0f65</validCheckSum> в набор изменений.

Или добавить <validCheckSum>ANY</validCheckSum>, но это действительно плохая практика.

Вы не должны изменять существующий changeSet при изменении модели базы данных. Вы должны написать еще один changeSet, который удаляет столбец, используя правильные <preconditions> и <dropColumn>.

например:.

<changeSet id="foo" author="bar">
    <preConditions onFail="MARK_RAN">
        <columnExists tableName="your_table" columnName="your_column"/>
    </preConditions>
    <dropColumn tableName="your_table" columnName="your_column"/>
</changeSet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...