1

假设我有以下用例:

  • 我希望我的应用程序针对 PostgreSQL 运行
  • 我已将jooq-codegen-maven插件配置为使用 H2
    • 这是因为我不想让我的构建依赖于始终运行的 postgres

问题:

  1. 针对 H2 生成的代码是否与 postgres 的使用兼容?
  2. 这个用例有意义吗?
  3. 如果没有,如何正确解决(减少对运行数据库实例的依赖)?
    • 我可以(以某种方式)使用带有生成过程(或一些类似概念)的测试容器吗

谢谢

伊沃斯

4

1 回答 1

1

针对 H2 生成的代码是否与 postgres 的使用兼容?

是的,只要您不使用任何供应商特定的功能

这个用例有意义吗?

当然可以,但我会先尝试其他事情,包括在testcontainers中运行 PostgreSQL 实例。jOOQ 将来可能会支持开箱即用:https ://github.com/jOOQ/jOOQ/issues/6551 。同时,这是一个显示如何手动设置的示例,这并不难:https ://github.com/jOOQ/jOOQ/tree/main/jOOQ-examples/jOOQ-testcontainers-example

此外,与其滚动您自己的 PostgreSQL/H2 设置,您可以只使用DDLDatabase,它从 jOOQ 3.13 开始将 PostgreSQL DDL 转换为 H2,并且在未来,将简单地解释 DDL,以支持更多供应商特定的东西。

于 2020-06-24T08:45:02.970 回答