Я разрабатываю приложение Spring, где все настроено с помощью maven (в pom.xml
). В моем приложении используется база данных PostgreSQL, но в модульных тестах используется база данных HSQLDB в памяти.Настроить HSQLDB с maven
Я просто столкнулся с проблемой с колонками TEXT
, потому что они не поддерживаются изначально HSQLDB. В моем классе сущностей у меня есть:
private @Column(columnDefinition = "text") String propertyName;
Это прекрасно работает с Postgres, но HSQLDB генерирует следующее сообщение об ошибке: type not found or user lacks privilege: TEXT
. Таблица не создана, и, конечно, в результате большинство моих тестов терпят неудачу.
Я нашел, что мне нужно activate PostgreSQL compatibility, для того, чтобы это сработало, установив sql.syntax_pgs
в true
.
Мой вопрос: где поставить эту настройку? Я хотел бы поместить его в pom.xml
, потому что там все настроено, но я не знаю где.
Для Exemple у меня есть:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Dspring.profiles.active=test</argLine>
</configuration>
</plugin>
Могу ли я каким-то образом добавить <argLine>
с этой установкой?
Где я могу это поставить? Также я хочу, чтобы это вступало в силу при использовании профиля 'test'. – deadbeef
вам нужно установить это, когда вы настраиваете HSQLDB для тестов. Это свойство будет установлено для всего теста с помощью hsqldb. –
Я не настраиваю HSQLDB в любом месте, я просто добавил его в 'pom.xml' как зависимость, затем он автоматически используется maven при запуске тестов. – deadbeef