【问题标题】:Spring boot Flyway Jooq Code gen maven plugin orderSpring boot Flyway Jooq Code gen maven 插件顺序
【发布时间】:2020-08-01 12:20:37
【问题描述】:

如何强制 flyway:migrate 始终在 jooq:generate-sources 之前执行? 我正在使用带有 Spring Boot 的 Maven 包装器。

<plugin>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <version>6.3.3</version>
        </plugin>
        <plugin>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-codegen-maven</artifactId>
            <version>3.13.1</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <generator>
                    <database>
                        <name>org.jooq.meta.postgres.PostgresDatabase</name>
                        <inputSchema>public</inputSchema>
                    </database>
                    <target>
                        <packageName>bg.kotz.db</packageName>
                        <directory>src/main/java</directory>
                    </target>
                </generator>
            </configuration>
        </plugin>

【问题讨论】:

    标签: spring-boot maven maven-plugin jooq flyway


    【解决方案1】:

    当您在src/main/java 中生成代码时,Maven 中的一切都开始崩溃。最好保持默认生成到target/...,或者,如果您想签入生成的源,请为 Flyway 迁移和 jOOQ 代码生成创建单独的 Maven 项目

    【讨论】:

      【解决方案2】:

      您还必须将executions 块添加到flyway-maven-plugin 部分,以使flyway 在generate-sources 步骤下执行迁移:

      <plugin>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-maven-plugin</artifactId>
        <version>6.3.3</version>
        <executions>
           <execution>
              <phase>generate-sources</phase>
              <goals>
                  <goal>migrate</goal>
              </goals>
           </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.jooq</groupId>
        <artifactId>jooq-codegen-maven</artifactId>
        <version>3.13.1</version>
        <executions>
           <execution>
              <phase>generate-sources</phase>
              <goals>
                  <goal>generate</goal>
              </goals>
           </execution>
        </executions>
        <configuration>
          <generator>
             <database>
                <name>org.jooq.meta.postgres.PostgresDatabase</name>
                <inputSchema>public</inputSchema>
              </database>
              <target>
                <packageName>bg.kotz.db</packageName>
                <directory>src/main/java</directory>
              </target>
            </generator>
          </configuration>
        </plugin>
      </plugins>
      

      【讨论】:

      • 它工作了,有点。当我输入spring-boot:运行它时:1.迁移架构2.使用jooq生成的类,3.编译并启动,但在第3步它尝试再次迁移并失败并出现以下错误:“消息:错误:关系”foo “已经存在”不知道为什么,flyway_schema_history 存在并且有记录。
      • 您在应用中使用什么版本的 flyway?
      猜你喜欢
      • 2015-07-21
      • 2019-09-10
      • 2014-06-20
      • 2017-03-26
      • 2020-05-19
      • 2018-01-07
      • 2019-12-21
      • 2018-10-17
      • 2017-08-24
      相关资源
      最近更新 更多