如何在现有JHipster应用程序中从H2 DB迁移到Postgresql?

时间:2019-08-16 11:51:06

标签: java jhipster h2 liquibase jsonb

我有一个JHipster应用程序,它使用Postgresql配置文件中的prod DB和H2配置文件中的dev DB。 我的Postgresql模式有JSONB列,我正在使用vlad's JsonTypeDescriptorJPA中处理 liquibase的{​​{1}}可以正常工作。 它以postgres模式创建类型为postgresql

的表

但是,IT测试用例以jsonb开头的各种异常而失败。 然后通过Could not create bean with name 'LiquibaseConfiguration'

传播

我了解 H2 不支持 JSONB 列。 我正在寻找的是一种使用 Postgresql数据库运行 Jhipster 生成的 Integration test 案例的方法。

如果这一切都是可能的,即使用Postgresql的测试数据库配置运行测试用例,则需要更改unkown data type JSONB才能使用properties运行测试?

我尝试了各种更改组合,包括更改postgrespom.xmlapplication-dev-h2db.yml等,但似乎无济于事。 不支持驱动程序,或者不支持WebConfigurer.java

我需要更改一组属性/类,以便从 H2 迁移到 Postgresql 测试用例数据库。

谢谢。

1 个答案:

答案 0 :(得分:0)

您的问题分为两部分:

  1. 如何在dev中使用postgresql
  2. 如何在单元测试中使用postgresql

对于开发人员,将您的.yo-rc.json文件复制到一个空目录,对其进行编辑以将“ devDatabaseType”:属性更​​改为“ postgresql”,使用jhipster命令生成项目,与您自己的项目进行比较并进行调整它。

对于测试,这需要更多的工作,请更改src / test / resources / application.yml中的属性。另外,您可能想使用TestContainers在docker中运行postgresql。参见https://github.com/intesys/generator-jhipster-testcontainers