我希望jOOQ自动代码生成器基于位于resources文件夹中的liquibase模式xml文件运行(而不是基于数据库连接).pom中的配置部分如下所示.xml:

<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.13.4.xsd">
    <generator>
        <database>
            <name>org.jooq.meta.extensions.liquibase.LiquibaseDatabase</name>
            <includes>.*</includes>
            <excludes></excludes>
            <inputSchema>public</inputSchema>

            <properties>
                <property>
                    <key>scripts</key>
                    <value>/liquibase-outputChangeLog.xml</value>
                </property>

                <property>
                    <key>includeLiquibaseTables</key>
                    <value>true</value>
                </property>

                <property>
                    <key>database.liquibaseSchemaName</key>
                    <value>public</value>
                </property>
            </properties>
        </database>

        <target>
            <packageName>jooqGenerated</packageName>
            <directory>target/generated-sources/jooq</directory>
        </target>
    </generator>
</configuration>

他说,它无法在指定的文件夹中生成jOOQ代码

[ERROR] azure/postgresql/TrackerAzureImpl.java: package ...tables does not exist (for all the tables, I cannot even see elsewhere where jooq code is getting generated),
Also one warning: No schemata were loaded: [WARNING] No schemata were loaded  : Please check your connection settings, and whether your database (and your database version!) is really supported by jOOQ. Also, check the case-sensitivity in your configured <inputSchema/> elements : {=[public]}

请导游.

推荐答案

这很可能是由于一个错误:https://github.com/jOOQ/jOOQ/issues/12997

解释和解决方法

在幕后,在jOOQ 3.16中,LiquibaseDatabaseDDLDatabaseJPADatabase都使用内存中的H2数据库模拟数据库migrations.这在future 可能会改变,但现在就是这样.在H2中,默认情况下,所有标识符都是大写的,<inputSchema/>配置也是如此.这意味着您应该包括PUBLIC模式,而不是public模式.

请注意,代码生成输出还将包含对PUBLIC的引用,而不是对public的引用,因此,如果要继续使用LiquibaseDatabase,则必须在运行时使用RenderQuotedNames setting关闭标识符的引用.

更 Solidity 的替代品,不会在H2上模拟液化

或者,你不用LiquibaseDatabase,正如我在其他地方提到的.您还可以使用testcontainers直接在PostgreSQL上运行实际迁移,并对实际的PostgreSQL数据库进行反向工程,而不是as described in this blog post.

Java相关问答推荐

试图弄清楚资源未能在我的Android应用程序中调用关闭警告

如何在Java中对自定义协议进行主机名验证?

Spring Webocket:尽管凭据设置为False,但MLhttpsify和Fetch请求之间的CORS行为存在差异

编译期间错误(Java 0000)Android .Net MAUI

我的scala文件失败了Scala.g4 ANTLR语法

在Java中将Charsequence数组更改为String数组或List String<>

Springdoc Whitelabel Error Page with Spring V3

Java FX中的河内之塔游戏-在游戏完全解决之前什么都不会显示

RichFaces 3.x-Spring Boot-迁移web.xml

相同的Java SerializedLambda为implMethodKind返回不同的结果

Chunk(Int)已弃用并标记为要删除

使用OAuth 2.0资源服务器JWT时的授权(授权)问题

如何为JavaFX Spring Boot应用程序制作Windows/MacOS/Linux安装程序

使用Jackson库反序列化json

无法使用Java PreparedStatement在SQLite中的日期之间获取结果

在Java中使用StorageReference将数据从Firebase存储添加到数组列表

在Spring Boot中使用咖啡因进行缓存-根据输出控制缓存

[Guice/MissingImplementation]:未绑定任何实现

可以';不要在Intellij IDEA中使用最新的Java版本(JDK 21)

关于正则表达式的一个特定问题,该问题与固定宽度负向后看有关