首页 > 解决方案 > 如何在现有的 JHipster 应用程序中从 H2 DB 迁移到 Postgresql?

问题描述

我有一个JHipster应用程序在配置文件中使用Postgresql数据库,在配置prod文件中使用数据库。我的模式有列,我正在使用vlad 的 JsonTypeDescriptor The for按预期工作。它在 postgres 模式中创建表,类型为H2devPostgresqlJSONBJPAliquibasepostgresqljsonb

但是,IT 测试用例会失败,并出现以Could not create bean with name 'LiquibaseConfiguration'. 然后通过传播unkown data type JSONB

我了解H2不支持JSONB列。我正在寻找的是一种运行由Jhipster使用Postgresql db生成的集成测试用例的方法。

如果这一切都是可能的,即使用 Postgresql 的测试数据库配置运行测试用例properties,我需要更改什么才能使用 运行测试postgres

我尝试了各种更改组合,包括更改pom.xml,等application-dev-h2db.ymlWebConfigurer.java但似乎没有任何效果。驱动程序不受支持,或者JSONB不受支持。

我需要一组属性/类,我需要更改这些属性/类才能从H2迁移到Postgresql DB for Test Cases。

提前致谢。

标签: javajhipsterh2liquibasejsonb

解决方案


你的问题有两个部分:

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

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

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


推荐阅读