如何强制jOOQ代码生成忽略Schema版本匹配?
jOOQ Maven插件跳过Schema版本匹配的解决方案
- 直接使用jOOQ Maven插件内置的
ignoreVersion属性,在插件配置的generator.database节点下设置为true,即可忽略Schema版本匹配,强制触发全量代码生成。示例配置如下:
<plugin> <groupId>org.jooq</groupId> <artifactId>jooq-codegen-maven</artifactId> <configuration> <generator> <database> <!-- 开启后忽略Schema版本校验,强制生成所有代码 --> <ignoreVersion>true</ignoreVersion> <!-- 保留原有的schemaVersionProvider配置 --> <schemaVersionProvider>SELECT version FROM flyway_schema_history ORDER BY installed_rank DESC LIMIT 1</schemaVersionProvider> <!-- 你的自定义强制类型配置 --> <forcedTypes> <forcedType> <userType>com.yourpackage.YourCustomType</userType> <converter>com.yourpackage.YourCustomConverter</converter> <includeExpression>...</includeExpression> </forcedType> </forcedTypes> </database> </generator> </configuration> </plugin>
如果只是需要临时触发一次全量生成,不想修改pom文件,可以直接在Maven命令中添加参数:
mvn jooq-codegen:generate -Djooq.generator.database.ignoreVersion=true这个属性的核心作用就是跳过jOOQ对Schema版本的校验逻辑,不管Flyway迁移记录有没有变更,都会重新生成所有代码,刚好适配你新增自定义类型和转换器但无Schema结构变更的场景,不用再手动修改
schemaVersionProvider的查询语句。
内容的提问来源于stack exchange,提问作者Fabrice Gabolde
相关产品推荐
相关产品推荐

