Если в приложении использовался WebDav, при обновлении БД Postgres и MS SQL чендж лог 004-migrate-webdav.xml
падает с ошибкой :
liquibase.exception.DatabaseException: ERROR: column "username" of relation "webdav_webdav_credentials" contains null values [Failed SQL: (0) ALTER TABLE public.WEBDAV_WEBDAV_CREDENTIALS ADD USERNAME VARCHAR(255) NOT NULL]
Это ведет в changeSet id="50"
:
<changeSet id="50" author="migrator">
<validCheckSum>1:any</validCheckSum>
<preConditions onFail="MARK_RAN">
<tableExists tableName="WEBDAV_WEBDAV_CREDENTIALS"/>
</preConditions>
<addColumn tableName="WEBDAV_WEBDAV_CREDENTIALS">
<column name="USERNAME" type="varchar(255)" >
<constraints nullable="false"/> /////Ошибка ограничения при непустой таблиице
</column>
</addColumn>
<update tableName="WEBDAV_WEBDAV_CREDENTIALS">
<column name="USERNAME" valueComputed="(select u.USERNAME from SEC_USER u where u.ID = USER_ID)"/>
</update>
...
...
</changeSet>
Похоже, что тут ограничение NullConstraint
надо создавать отдельно уже поле обновления USERNAME
.
И что-то я не смог быстро придумать как это вылечить без изменения аддона cuba-jmix
.
Подсунуть свой чендж-лог, который выполнился бы до 004-migrate-webdav.xml
не получилось.
В Jnix 1.6 картина та же.