首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置具有液化基和无db连接属性的jooq-codegen-maven插件的postgres方言?

如何设置具有液化基和无db连接属性的jooq-codegen-maven插件的postgres方言?
EN

Stack Overflow用户
提问于 2020-08-10 11:55:07
回答 1查看 1.7K关注 0票数 1

我使用液化基和jooq,我需要直接从清算基xml文件生成pojo,但是我在用Postgres覆盖默认的"H2“方言时遇到了问题。实际上,我尝试通过插件“配置”部分中的属性设置方言,但它仍然使用H2。请有人问我,在读取xml文件和生成java类时,如何使jooq使用postgres方言。

以下是已使用的库版本

代码语言:javascript
复制
<properties>
    <jooq.version>3.13.4</jooq.version>
    <vertx-jooq.version>5.1.1</vertx-jooq.version>
    <postgres.version>42.2.12</postgres.version>
 </properties>

这是我的插件配置

代码语言:javascript
复制
<plugin>
    <groupId>org.jooq</groupId>
    <artifactId>jooq-codegen-maven</artifactId>
    <version>${jooq.version}</version>
    <executions>
      <execution>
        <id>jooq-generate</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>generate</goal>
        </goals>
      </execution>
    </executions>
    <dependencies>
      <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${postgres.version}</version>
      </dependency>
      <dependency>
        <groupId>io.github.jklingsporn</groupId>
        <artifactId>vertx-jooq-generate</artifactId>
        <version>${vertx-jooq.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>3.3.9</version>
      </dependency>
      <dependency>
      <groupId>org.jooq</groupId>
      <artifactId>jooq-meta-extensions</artifactId>
      <version>${jooq.version}</version>
    </dependency>
    </dependencies>
    <configuration>
      <generator>
        <name>io.github.jklingsporn.vertx.jooq.generate.classic.ClassicReactiveVertxGenerator</name>
        <database>
          <name>org.jooq.meta.extensions.liquibase.LiquibaseDatabase</name>
          <properties>
            <property>
              <key>scripts</key>
              <value>src/main/resources/liquibase/tenant/changelog.xml</value>
            </property>
            <property>
              <key>changeLogParameters.contexts</key>
              <value>!test</value>
            </property>
            <-- unfortunately this property doesn't work -->
            <property>
              <key>dialect</key>
              <value>POSTGRES</value>
            </property>
          </properties>
          <outputSchemaToDefault>true</outputSchemaToDefault>
          <unsignedTypes>false</unsignedTypes>
          <forcedTypes />
        </database>
        <generate>
          <daos>true</daos>
          <fluentSetters>true</fluentSetters>
        </generate>
        <target>
          <packageName>org.folio.rest.jooq</packageName>
        </target>
        <strategy>
          <name>io.github.jklingsporn.vertx.jooq.generate.VertxGeneratorStrategy</name>
        </strategy>
      </generator>
    </configuration>
  </plugin>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-11 07:09:04

从jOOQ 3.14开始,jOOQ代码生成器的org.jooq.meta.extensions.liquibase.LiquibaseDatabase数据源将H2幕后的H2用于模拟迁移,而不是实际在目标数据库上运行迁移。这允许在没有实际数据库实例和连接的情况下使用jOOQ和您的清算库迁移脚本。在将来,可以透明地使用testcontainers:https://github.com/jOOQ/jOOQ/issues/6551来拆分一个https://github.com/jOOQ/jOOQ/issues/6551实例。

下面是一个如何设置它的示例:https://github.com/jOOQ/jOOQ/tree/main/jOOQ-examples/jOOQ-testcontainers-example (不太难)

如果您希望使用实际的PostgreSQL数据库,只需在运行jOOQ代码生成之前,在运行两个连接到同一数据库服务器的情况下,使用清算基maven插件运行清算库迁移即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63339678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档