如何使jooq自动生成器使用liquibase脚本运行,然后在Spring启动时迁移liquibase,而不是mvn干净编译?
我希望 jooq 自动生成器在 liquibase 模式上运行,然后我希望 liquibase 迁移在 spring 启动启动时运行,但目前它在运行 mvn 干净编译时运行。我希望像“获取的更改锁”这样的日志在应用程序启动后出现,而不是在 mvn 干净编译时出现。
这是pom.xml摘录:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.4.1</version>
<executions>
<execution>
<phase>generate-resources</phase>
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
<changeLogFile>src/main/resources/liquibase-outputChangeLog.xml</changeLogFile>
<driver>org.postgresql.Driver</driver>
</configuration>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<version>3.13.4</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.12</version>
</dependency>
</dependencies>
<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.16.3.xsd">
<jdbc>
<driver>org.postgresql.Driver</driver>
<url>${spring.datasource.url}</url>
<user>${spring.datasource.username}</user>
<password>${spring.datasource.password}</password>
</jdbc>
<generator>
<database>
<name>org.jooq.meta.postgres.PostgresDatabase</name>
<includes>.*</includes>
<excludes></excludes>
<inputSchema>public</inputSchema>
</database>
<target>
<packageName>com.slb.pps.azure.jooqGenerated</packageName>
<directory>target/generated-sources/jooq</directory>
</target>
</generator>
</configuration>
</plugin>
请帮我调试这个。如果需要其他信息,请告诉我。
Maven 配置在开发和构建环境中非常有用,在这些环境中,您依赖于实时数据库和数据库连接来执行以下操作:
但这与您的生产数据库使用不同,在生产数据库使用中,您最好以编程方式运行 Liquibase,嵌入到您的应用程序中。这不是运行生产迁移的唯一选项,而是我推荐的选项。以下是Liquibase关于该主题的官方资源,可帮助您做出明智的决定:https://www.liquibase.com/blog/3-ways-to-run-liquibase
这里有另一个资源展示了如何将jOOQ的代码生成与testcontainers一起使用,而不是使用实时数据库,这可能有助于更好地分离构建和生产问题:https://blog . jOOQ . org/using-test containers-to-generate-jOOQ-code/
我试图在命令提示符下执行命令:
如果要使用相同的变量但值不同,如何替换下一个更改集的标记值。实例 这个例子只适用于第一次和第二次 设置或运行Liquibase时出错:Liquibase。例外设置例外:液化。例外SetupException:分析/patches/translate\me的第150行第67列时出错。xml:cvc复杂类型。2.4.a: 发现以元素“property”开头的内容无效。“{”之一http://www.l
我有一套序列模型。我想使用迁移,而不是数据库同步。 根据这篇文章,Sequelize CLI似乎能够做到这一点:“当您使用CLI生成模型时,您还可以免费获得迁移脚本。” 如何使用Sequelize CLI从现有的Sequelize模型中自动生成迁移?
问题内容: 我正在使用Alembic处理Flask的迁移。理论上,应该基于数据库中的更改自动生成迁移。但是,Alembic仅使用上述命令即可生成空白迁移。 有一个与此问题非常相似的问题,即问题是没有导入正确的模型。但是,我已经从我的Flask应用程序导入了模型,如下所示: 以及中导入的数据库元数据env.py(“ start”是我的Flask应用程序主文件的名称): 运行,alembic revi
我使用的项目使用JOOQ及其生成器从Postgres数据库生成类。数据库进化由播放进化管理。我们还使用git作为版本控制系统。当从git获取新的evolutions/jooq代码时,这组工具会导致某种自引用问题: 由于缺少从这些表中生成的类而导致编译问题,因此无法应用由其他团队成员创建的新表的演变。 我在考虑以下解决方案: 应用sbt的演变-创建sbt任务-到目前为止未能实现, 堆栈: PlayF
我试图为我的MySql数据库自动生成jOOQ java代码,但它不起作用。我在maven的JSP项目中使用jOOQ。 xml 我正在使用Tomcat在eclipse上运行这个项目。当我想运行Web应用程序时,我会清理项目,然后清理项目 当我运行该项目时,并没有生成数据库的java代码<正如文档中所说,由于我在jOOQ中使用maven,因此我可以自动生成JAVA代码,而无需使用cli。无需创建库。x