Автоинкремент Н2 в жидкой базе не работает для loadUpdateData - PullRequest
0 голосов
/ 09 марта 2020

У меня есть простая таблица, определенная в liquibase следующим образом

    <createTable tableName="dictionary_values">
            <column autoIncrement="true" name="id" type="bigint">
                <constraints primaryKey="true" primaryKeyName="dictionary_values_pk"/>
            </column>
            <column name="field_id" type="bigint">
                <constraints nullable="true"/>
            </column>
            <column name="entry_id" type="bigint">
                <constraints nullable="true"/>
            </column>
            <column name="value" type="varchar(255)">
                <constraints nullable="false"/>
            </column>
        </createTable>

Затем я пытаюсь вставить некоторые записи в созданную базу данных с набором изменений, как показано ниже

    <changeSet id="111111111" author="author">
        <loadUpdateData
                file="dict_values.csv"
                primaryKey="id"
                separator=";"
                tableName="dictionary_values">
        </loadUpdateData>
    </changeSet>

Загруженный CSV выглядит так

entry_id;field_id;value
1;1;FIELD_1
1;2;FIELD_2
2;1;FIELD_1
2;2;FIELD_2
3;1;FIELD_1
3;2;FIELD_2
...

Эта конфигурация хорошо работает для мс sql дБ, но при запуске на h2 в нашем тесте интеграции она завершается с ошибкой: Column "ID" contains null values. Я не очень понимаю, почему autoIncrement работает для MS sql, но не для H2? Я пропустил некоторые дополнительные настройки? Или просто h2 не поддерживает эту функцию (для меня это маловероятно)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...