Liquibase SQL Серверный скрипт не проходит тесты H2 db - PullRequest
0 голосов
/ 22 января 2020

У меня есть наборы изменений в liquibase для моей SQL серверной базы данных, например:

<changeSet author="diff-generated" id="1579082307417-3">
        <sql>
            alter table UsersRoles
            add Id int identity
        </sql>
    </changeSet>
    <changeSet author="diff-generated" id="1579082307417-4">
        <sql>
            alter table UsersRoles
            add constraint UsersRoles_pk
            primary key nonclustered(Id)
        </sql>
    </changeSet>

Когда я запускаю приложение с liquibase на моем SQL сервере - оно работает.

Но я пытаюсь запустить то же самое с тестом - я получил ошибку. Другие наборы изменений выполняются идеально.

Причина: org.h2.jdb c .JdbcSQLSyntaxErrorException: синтаксическая ошибка в операторе SQL "ALTER TABLE USERSROLES ADD CONSTRAINT USERSROLES_PK PRIMARY KEY NONCLUSTERED * Я БЫ) "; ожидается "HA SH, ("; SQL оператор: изменить таблицу UsersRoles добавить ограничение Первичный ключ UsersRoles_pk некластеризован (Id) [42001-199]

Настройки для жидкой базы в тестах:

changeLogFile=classpath:/liquibase/database-changelog.xml
url=jdbc:h2:mem:testDb;MODE=MSSQLServer
username=SA
password=
driver=org.h2.Driver

Я пытался изменить драйвер на SQL Драйвер сервера, но это не работает. В чем может быть проблема?

1 Ответ

1 голос
/ 22 января 2020

H2 не поддерживает предложение NONCLUSTERED с сервера SQL, его необходимо удалить для H2.

alter table UsersRoles
add constraint UsersRoles_pk
primary key (Id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...