JOOQ 可以为 H2/Postgresql 别名 Liquibase JSONB 数据类型吗

Posted

技术标签:

【中文标题】JOOQ 可以为 H2/Postgresql 别名 Liquibase JSONB 数据类型吗【英文标题】:Can JOOQ alias a Liquibase JSONB data type for H2/Postgresql 【发布时间】:2021-07-22 04:01:32 【问题描述】:

我正在使用这个 H2 功能在 jdbc 字符串中为 JSONB 创建别名:

spring.datasource.url: jdbc:h2:mem:testdb;INIT=create domain if not exists jsonb as text;MODE=PostgreSQL

但是 JOOQs 的 codegen liquibase 支持(指向 liquibase 文件的生成器)无法识别 JSONB 列类型。 我不断得到:

原因:liquibase.exception.DatabaseException:未知数据类型:“JSONB”;

有没有办法告诉生成器将此数据类型别名为 TEXT?

【问题讨论】:

你能多发一些你正在做的事情吗?具体来说,这里需要您的 liquibase 迁移... 【参考方案1】:

你可以尝试用CREATE TYPE "JSONB" AS json初始化你的h2

【讨论】:

以上是关于JOOQ 可以为 H2/Postgresql 别名 Liquibase JSONB 数据类型吗的主要内容,如果未能解决你的问题,请参考以下文章

jOOQ:如何查看已别名的字段?

RETURNING 的别名导致 jooq

jOOQ - 别名和引号错误

是否可以为 jOOQ 代码生成提供渲染设置?

jOOQ 可以为 Oracle 同义词生成代码吗?

有没有一种正确的方法可以使用 JOOQ 为所有方言创建一个包含枚举的表?