Ошибка чендж лога миграции Cuba > Jmix (004-migrate-webdav.xml)

Если в приложении использовался 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 картина та же.

Добрый день, Андрей.

Спасибо за обнаруженную проблему.
Фикс попадет в ближайший релиз (Migration: WebDAV migration failed due to untimely constraint declaration · Issue #3754 · jmix-framework/jmix · GitHub).

С уважением,
Иван

1 симпатия

Вижу в 1.6.1. Спасибо за оперативность!
Будем обновляться.