Как заставить автоматический генератор jooq работать с использованием сценария liquibase, а затем выполнить миграцию liquibase при запуске весенней загрузки вместо чистой компиляции mvn?
Я хочу, чтобы автоматический генератор jooq работал на основе схемы liquibase, а затем я хочу, чтобы миграция liquibase запускалась при запуске весенней загрузки, но в настоящее время он работает при запуске mvn clean compile. Я хочу, чтобы такие журналы, как «Приобретенная блокировка изменений», появлялись после запуска приложения, а не при чистой компиляции 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 вместе с тестовыми контейнерами вместо живой базы данных, что может помочь лучше разделить проблемы сборки и производства: https://blog.jooq.org/using-testcontainers-to-generate-jooq-code/