假设我有以下用例:
- 我希望我的应用程序针对 PostgreSQL 运行
- 我已将
jooq-codegen-maven
插件配置为使用 H2- 这是因为我不想让我的构建依赖于始终运行的 postgres
问题:
- 针对 H2 生成的代码是否与 postgres 的使用兼容?
- 这个用例有意义吗?
- 如果没有,如何正确解决(减少对运行数据库实例的依赖)?
- 我可以(以某种方式)使用带有生成过程(或一些类似概念)的测试容器吗
谢谢
伊沃斯
假设我有以下用例:
jooq-codegen-maven
插件配置为使用 H2
问题:
谢谢
伊沃斯
针对 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,以支持更多供应商特定的东西。