GithubHelp home page GithubHelp logo

micronaut-flyway's Introduction

Micronaut Flyway

Maven Central Build Status Quality Gate Status Revved up by Develocity

This project includes integration between Micronaut and Flyway.

Documentation

See the Documentation for more information.

See the Snapshot Documentation for the current development docs.

Snapshots and Releases

Snapshots are automatically published to Sonatype Snapshots using Github Actions.

See the documentation in the Micronaut Docs for how to configure your build to use snapshots.

Releases are published to Maven Central via Github Actions.

Releases are completely automated. To perform a release use the following steps:

micronaut-flyway's People

Contributors

alextu avatar alvarosanchez avatar burtbeckwith avatar chaimaaerouai avatar dependabot-preview[bot] avatar dependabot[bot] avatar driverpt avatar eshton avatar graemerocher avatar ilopmar avatar jameskleeh avatar jeremyg484 avatar labbati avatar melix avatar meredrica avatar micronaut-build avatar msupic avatar n0tl3ss avatar peh avatar radovanradic avatar renovate[bot] avatar sdelamo avatar shingjo avatar stefanholzmueller avatar timyates avatar wetted avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

micronaut-flyway's Issues

Cannot use ignore-migration-patterns configuration property

Expected Behavior

I want to set ignore-migration-patterns in application.yml to ignore missing migration files:

flyway:
  datasources:
    default:
      enabled: true

      ignore-migration-patterns: "*:missing"
      locations: classpath:db/migration

but if I did this, I got error when application starts:

essage: Cannot invoke "org.flywaydb.core.api.pattern.ValidatePattern.matchesMigration(boolean, org.flywaydb.core.api.MigrationState)" because "p" is null
Path Taken: SessionFactory.hibernateSessionFactory([SessionFactoryBuilder sessionFactoryBuilder]) --> SessionFactoryBuilder.hibernateSessionFactoryBuilder([MetadataSources metadataSources],ValidatorFactory validatorFactory,Interceptor hibernateInterceptor) --> MetadataSources.hibernateMetadataSources(JpaConfiguration jpaConfiguration,[StandardServiceRegistry standardServiceRegistry])
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2363)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:3281)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:3267)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2820)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2782)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1638)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2035)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1281)
	at io.micronaut.configuration.hibernate.jpa.$EntityManagerFactoryBean$HibernateMetadataSources1$Definition.doBuild(Unknown Source)
	at io.micronaut.context.AbstractInitializableBeanDefinition.build(AbstractInitializableBeanDefinition.java:755)
	at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:132)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2336)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:3281)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:3267)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2820)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2782)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1638)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2035)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1281)
	at io.micronaut.configuration.hibernate.jpa.$EntityManagerFactoryBean$HibernateSessionFactoryBuilder2$Definition.build(Unknown Source)
	at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:136)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2336)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:3281)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:3267)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2820)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2782)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1638)
	at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2035)
	at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1281)
	at io.micronaut.configuration.hibernate.jpa.$EntityManagerFactoryBean$HibernateSessionFactory3$Definition.build(Unknown Source)
	at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:136)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2336)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:3281)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:3267)
	at io.micronaut.context.DefaultBeanContext.loadContextScopeBean(DefaultBeanContext.java:2653)
	at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1932)
	... 9 common frames omitted
Caused by: java.lang.NullPointerException: Cannot invoke "org.flywaydb.core.api.pattern.ValidatePattern.matchesMigration(boolean, org.flywaydb.core.api.MigrationState)" because "p" is null

I tried with ignore-migration-patterns: "*:*" too, but still the same. According to https://documentation.red-gate.com/fd/ignore-migration-patterns-184127507.html I used correct pattern.

Actual Behaviour

exception is throw on startup

Steps To Reproduce

No response

Environment Information

  • Linux, 5.15.0-58-generic #64-Ubuntu SMP Thu Jan 5 11:43:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
  • JDK11
  • Micronaut 3.4.0
  • micronaut data 3.3.0

Example Application

No response

Version

3.4.0

flyway not migrating multiple location as native image (ubuntu, wsl)

Expected Behavior

Same migration result on native-image as under jvm.

Actual Behaviour

With multiple migration locations configured:

flyway:
  datasources:
    default:
      enabled: true
      locations:
        - classpath:db/migration/h2
        - classpath:db/seed

flyway performs migrations as expected when executed in the jvm:

$:/tmp/demo$ mvn -q package
...
$/tmp/demo$ java -jar target/demo-0.1.jar
16:23:21.643 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
16:23:21.894 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
16:23:21.899 [main] INFO  i.m.flyway.AbstractFlywayMigration - Running migrations for database with qualifier [default]
16:23:21.952 [main] INFO  o.f.c.i.license.VersionPrinter - Flyway Community Edition 7.12.1 by Redgate
16:23:21.953 [main] INFO  o.f.c.i.d.base.BaseDatabaseType - Database: jdbc:h2:mem:test (H2 1.4)
16:23:22.024 [main] INFO  o.f.core.internal.command.DbValidate - Successfully validated 2 migrations (execution time 00:00.031s)
16:23:22.044 [main] INFO  o.f.c.i.s.JdbcTableSchemaHistory - Creating Schema History table "PUBLIC"."flyway_schema_history" ...
16:23:22.099 [main] INFO  o.f.core.internal.command.DbMigrate - Current version of schema "PUBLIC": << Empty Schema >>
16:23:22.107 [main] INFO  o.f.core.internal.command.DbMigrate - Migrating schema "PUBLIC" to version "1 - init schema"
16:23:22.147 [main] INFO  o.f.core.internal.command.DbMigrate - Migrating schema "PUBLIC" to version "1.1 - seed user"

,but fails to do so when running as a native image:

$:/tmp/demo$ mvn -q package -Dpackaging=native-image
...
$:/tmp/demo$ ./target/demo
17:02:19.114 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
17:02:19.151 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
17:02:19.159 [main] INFO  i.m.flyway.AbstractFlywayMigration - Running migrations for database with qualifier [default]
17:02:19.165 [main] INFO  o.f.c.i.license.VersionPrinter - Flyway Community Edition 7.12.1 by Redgate
17:02:19.166 [main] INFO  o.f.c.i.d.base.BaseDatabaseType - Database: jdbc:h2:mem:test (H2 1.4)
17:02:19.191 [main] INFO  o.f.core.internal.command.DbValidate - Successfully validated 0 migrations (execution time 00:00.010s)
17:02:19.192 [main] WARN  o.f.core.internal.command.DbValidate - No migrations found. Are your locations set up correctly?
17:02:19.210 [main] INFO  o.f.c.i.s.JdbcTableSchemaHistory - Creating Schema History table "PUBLIC"."flyway_schema_history" ...
17:02:19.261 [main] INFO  o.f.core.internal.command.DbMigrate - Current version of schema "PUBLIC": << Empty Schema >>
17:02:19.268 [main] INFO  o.f.core.internal.command.DbMigrate - Schema "PUBLIC" is up to date. No migration necessary.
17:02:19.367 [main] INFO  io.micronaut.runtime.Micronaut - Startup completed in 425ms. Server Running: http://localhost:8080

Steps To Reproduce

  1. checkout repo
  2. mvn package and then java -jar target/demo-0.1.jar (succesful migration)
  3. mvn package -Dpackaging=native-image, followed by ./target/demo (no migration)
  4. The target repo contains 2 commits. HEAD showcases the issue. The preceding commit has a single-location migration, which I could get to work, both under the jvm and as a native-image.

Environment Information

$:/tmp/demo$ uname -ro && cat /etc/lsb-release
4.4.0-19041-Microsoft GNU/Linux
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS"
$:/tmp/demo$ java -version
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment GraalVM CE 21.2.0 (build 11.0.12+6-jvmci-21.2-b08)
OpenJDK 64-Bit Server VM GraalVM CE 21.2.0 (build 11.0.12+6-jvmci-21.2-b08, mixed mode, sharing)

Example Application

https://github.com/rosemead/mn-flyway-native-image

Version

3.0.2

Cannot mark placeholderReplacement="false" in config file

Feature description

Expected behaviour

On flyway script, you'd want to save text value to DB which contains parameter structure (${})

create table template_parameter
(
    id        bigserial primary key,
    parameter text not null unique,
    name      text not null
);

insert into template_parameter (parameter, name)
values ('${company.name}', 'Company name');

For this to go through, you first have to disable placeHolderReplacement (SO thread), which can be done in config file:

flyway:
  datasources:
    default:
      enabled: true
  placeholderReplacement: false

Now start the app and migrations should be done successfully.

Current behaviour

Gets an exception like configuration hasn't been set

Bean definition [javax.sql.DataSource] could not be loaded: Unable to parse statement in db/migration/V202209231450__add_template_parameter_table.sql at line 9 col 1. See https://rd.gt/3ipi7Pm for more information: No value provided for placeholder: ${company.name}.  Check your configuration!
io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [javax.sql.DataSource] could not be loaded: Unable to parse statement in db/migration/V202209231450__add_template_parameter_table.sql at line 9 col 1. See https://rd.gt/3ipi7Pm for more information: No value provided for placeholder: ${company.name}.  Check your configuration!

Notes

Tried to use the gradle way of setting the parameter as well, but I couldn't get it to work on gradle kotlin. Maybe someone has a way for this to work.

And maybe there could be fix that just forwards extra flyway configs to flyway itself (that aren't specific to this micronaut-flyway project)

Seems more like feature request, thus did not create a bug report

Micronaut-flyway:2.1.1 does not work with Flyway-core:5.2.4

We have a Postgres 9.3 database so we need to use Flyway-core:5.2.4.

Micronaut-flyway:2.0.1 worked fine with Flyway-core:5.2.4, when we upgraded Micronaut from 2.0.1 to 2.1.1, we encountered this error:

Caused by: java.lang.ClassNotFoundException: org.flywaydb.core.api.ResourceProvider at java.net.URLClassLoader.findClass(URLClassLoader.java:591) at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:953) at java.lang.ClassLoader.loadClass(ClassLoader.java:898) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:881) ... 75 more

The configurations (worked with Micronaut 2.0.1, broken in 2.1.1) is:

implementation "io.micronaut.flyway:micronaut-flyway" implementation("org.flywaydb:flyway-core") { version { strictly("5.2.4") } }

Connection pool exhausted using micronaut transaction.

I created an example application to reproduce the problem here.

In order to run this example you need a PostgreSQL database.

Edit the application.yml file and change:

datasources:
  default:
    url: jdbc:postgresql://10.211.55.10:5432/prueba
    username: postgres
    password: postgres

With your values.

Edit pom.xml and change:

<database-url>jdbc:postgresql://10.211.55.10:5432/prueba</database-url>
<database-user>postgres</database-user>
<database-password>postgres</database-password>

With your values.

Run the Application class.

If you see in the log that the application is inserting values, like this:

13:38:05.001 [pool-2-thread-3] DEBUG i.m.context.DefaultBeanContext - Resolved existing bean [prueba.jdbc.TestScheduler@df35147] for type [class prueba.jdbc.TestScheduler] and qualifier [null]
13:38:05.002 [pool-2-thread-3] DEBUG i.m.t.j.DataSourceTransactionManager - Creating new transaction with name [Dao.insert]: 0,-1
13:38:05.002 [pool-2-thread-3] DEBUG i.m.t.j.DataSourceTransactionManager - Acquired Connection [ProxyConnection[PooledConnection[org.postgresql.jdbc.PgConnection@7f64f3dc]]] for JDBC transaction
13:38:05.003 [pool-2-thread-3] DEBUG org.jooq.tools.LoggerListener - Executing query          : insert into "public"."test_table" ("key", "some_text") values (?, ?)
13:38:05.003 [pool-2-thread-3] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : insert into "public"."test_table" ("key", "some_text") values ('7396b88c-6438-4e9a-bb45-ebdc88f6dce7', 'text.')
13:38:05.004 [pool-2-thread-3] DEBUG org.jooq.tools.LoggerListener - Affected row(s)          : 1
13:38:05.005 [pool-2-thread-3] DEBUG i.m.t.j.DataSourceTransactionManager - Initiating transaction commit
13:38:05.005 [pool-2-thread-3] DEBUG i.m.t.j.DataSourceTransactionManager - Committing JDBC transaction on Connection [ProxyConnection[PooledConnection[org.postgresql.jdbc.PgConnection@7f64f3dc]]]
13:38:05.006 [pool-2-thread-3] DEBUG i.m.t.j.DataSourceTransactionManager - Releasing JDBC Connection [ProxyConnection[PooledConnection[org.postgresql.jdbc.PgConnection@7f64f3dc]]] after transaction
13:38:07.006 [pool-2-thread-2] DEBUG i.m.context.DefaultBeanContext - Resolved existing bean [prueba.jdbc.TestScheduler@df35147] for type [class prueba.jdbc.TestScheduler] and qualifier [null]
13:38:07.006 [pool-2-thread-2] DEBUG i.m.t.j.DataSourceTransactionManager - Creating new transaction with name [Dao.insert]: 0,-1
13:38:07.006 [pool-2-thread-2] DEBUG i.m.t.j.DataSourceTransactionManager - Acquired Connection [ProxyConnection[PooledConnection[org.postgresql.jdbc.PgConnection@7f64f3dc]]] for JDBC transaction
13:38:07.007 [pool-2-thread-2] DEBUG org.jooq.tools.LoggerListener - Executing query          : insert into "public"."test_table" ("key", "some_text") values (?, ?)
13:38:07.007 [pool-2-thread-2] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : insert into "public"."test_table" ("key", "some_text") values ('c772cd4d-3383-44a2-8bfb-e8e3ceff700e', 'text.')
13:38:07.009 [pool-2-thread-2] DEBUG org.jooq.tools.LoggerListener - Affected row(s)          : 1

Restart the application, for some reason the problem doesn't happen all the time.

When the problem happens, you will see this in the log at the first insert attempt:

13:36:38.723 [pool-2-thread-2] DEBUG org.jooq.tools.LoggerListener - Executing query          : insert into "public"."test_table" ("key", "some_text") values (?, ?)
13:36:38.724 [pool-2-thread-2] DEBUG org.jooq.tools.LoggerListener - -> with bind values      : insert into "public"."test_table" ("key", "some_text") values ('be6d5215-42f9-4b9e-96b3-e1045b8c7eaf', 'text.')
13:37:08.731 [pool-2-thread-2] DEBUG io.micronaut.core.reflect.ClassUtils - Attempting to dynamically load class org.postgresql.Driver
13:37:08.731 [pool-2-thread-2] DEBUG io.micronaut.core.reflect.ClassUtils - Successfully loaded class org.postgresql.Driver
13:37:08.732 [pool-2-thread-2] DEBUG org.jooq.tools.LoggerListener - Exception                
org.jooq.exception.DataAccessException: Error getting connection from data source org.apache.tomcat.jdbc.pool.DataSource@7ff2b8d2{ConnectionPool[defaultAutoCommit=false; defaultReadOnly=null; defaultTransactionIsolation=-1; defaultCatalog=null; driverClassName=org.postgresql.Driver; maxActive=1; maxIdle=1; minIdle=1; initialSize=1; maxWait=30000; testOnBorrow=false; testOnReturn=false; timeBetweenEvictionRunsMillis=5000; numTestsPerEvictionRun=0; minEvictableIdleTimeMillis=60000; testWhileIdle=false; testOnConnect=false; password=********; url=jdbc:postgresql://10.211.55.10:5432/prueba; username=postgres; validationQuery=SELECT 1; validationQueryTimeout=-1; validatorClassName=null; validationInterval=3000; accessToUnderlyingConnectionAllowed=true; removeAbandoned=false; removeAbandonedTimeout=60; logAbandoned=false; connectionProperties=null; initSQL=null; jdbcInterceptors=null; jmxEnabled=true; fairQueue=true; useEquals=true; abandonWhenPercentageFull=0; maxAge=0; useLock=false; dataSource=null; dataSourceJNDI=null; suspectTimeout=0; alternateUsernameAllowed=false; commitOnReturn=false; rollbackOnReturn=false; useDisposableConnectionFacade=true; logValidationErrors=false; propagateInterruptState=false; ignoreExceptionOnPreLoad=false; useStatementFacade=true; }
	at org.jooq_3.13.2.POSTGRES.debug(Unknown Source)
	at org.jooq.impl.DataSourceConnectionProvider.acquire(DataSourceConnectionProvider.java:86)
	at org.jooq.impl.DefaultExecuteContext.connection(DefaultExecuteContext.java:647)
	at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:334)
	at org.jooq.impl.AbstractDelegatingQuery.execute(AbstractDelegatingQuery.java:119)
	at prueba.jdbc.Dao.insert(Dao.java:29)
	at prueba.jdbc.$DaoDefinition$Intercepted.$$access0(Unknown Source)
	at prueba.jdbc.$DaoDefinition$Intercepted$$proxy0.invokeInternal(Unknown Source)
	at io.micronaut.context.AbstractExecutableMethod.invoke(AbstractExecutableMethod.java:146)
	at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:60)
	at io.micronaut.transaction.interceptor.TransactionalInterceptor.intercept(TransactionalInterceptor.java:108)
	at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:69)
	at prueba.jdbc.$DaoDefinition$Intercepted.insert(Unknown Source)
	at prueba.jdbc.TestScheduler.handle(TestScheduler.java:22)
	at prueba.jdbc.TestScheduler.run(TestScheduler.java:18)
	at prueba.jdbc.$TestSchedulerDefinition$$exec1.invokeInternal(Unknown Source)
	at io.micronaut.context.AbstractExecutableMethod.invoke(AbstractExecutableMethod.java:146)
	at io.micronaut.inject.DelegatingExecutableMethod.invoke(DelegatingExecutableMethod.java:76)
	at io.micronaut.scheduling.processor.ScheduledMethodProcessor.lambda$process$5(ScheduledMethodProcessor.java:125)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
	at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: org.apache.tomcat.jdbc.pool.PoolExhaustedException: [pool-2-thread-2] Timeout: Pool empty. Unable to fetch a connection in 30 seconds, none available[size:1; busy:1; idle:0; lastwait:30000].
	at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:717)
	at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:198)
	at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:132)
	at org.jooq.impl.DataSourceConnectionProvider.acquire(DataSourceConnectionProvider.java:83)
	... 23 common frames omitted

Environment Information

  • Operating System: MacOS 10.15.5
  • Micronaut Version: 2.0.0
  • JDK Version: 14.0.1
  • PostgreSql Version: 11

Old Flyway dependency cannot auto detect SLF4J 2.0

Expected Behavior

Logging output should respect on log level setting.
For example add following to logback.xml should print out all sql executed
<logger name="org.flywaydb.core.internal.sqlscript" level="DEBUG">
<appender-ref ref="STDOUT"/>
</logger>

Actual Behaviour

Setting log level to debug but always got info level only

Steps To Reproduce

By following guide "ACCESS A DATABASE WITH MICRONAUT DATA R2DBC". When I try to see the logging for real sql executed by flyway. Found no matter how detail level I setup.Always only info level was logged.After some digging find flyway have a bug detecting SLF4j 2.0(flyway/flyway#3730). And it's been fixed at Flyway 9.22.2 (2023-09-21).But latest micronaut depends on older 9.21.2. Temporary solution is add dependency(Maven)
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>9.22.3</version>
</dependency>

Environment Information

Mac Sonoma 14
JDK Oracle GraalVM 21+35.1

Example Application

No response

Version

4.1.4,4.1.5

Allow Custom Properties to be set

Feature description

flyway:
  datasources:
    default:
      enabled: true
      username: ${datasource.username}
      password: ${datasource.password}
      url: ${datasource.url}
      driver: ${datasource.driver}
      properties:
         key1: value1
         key2: value2

Example

flyway:
  datasources:
    default:
      properties:
        flyway.postgresql.transactional.lock: false

Because of executing CREATE INDEX CONCURRENTLY inside Flyway's default Transaction.
This could be solved by calling FluentConfiguration.configuration("postgresql.transactional.lock", "false") in FlywayMigrationFactory before instantiating Flyway

Flyway migration before validation

Currently the Hibernate Schema validation is done before database migration. Is it possible to do the flyway migration at first and then do the schema validation?

Configured baseline version not working

Expected Behavior

Specified baseline version is 0.0, expect baseline version to be 0.0 and all migrations to be run against non-empty database on first execution.

Actual Behaviour

Baseline version is initialized as 1, first migration is skipped.

Steps To Reproduce

application.yml:

flyway:
  datasources:
    default:
      baseline-on-migrate: true
      baseline-version: 0.0
      enabled: true
      table: flyway_app

Migration files:

  • V1__table.sql
  • V2__add_column.sql

Log output:

Oct 03, 2023 1:45:39 PM org.flywaydb.core.internal.license.VersionPrinter printVersionOnly
INFO: Flyway Community Edition 9.22.1 by Redgate
Oct 03, 2023 1:45:39 PM org.flywaydb.core.internal.license.VersionPrinter printVersion
INFO: See release notes here: https://rd.gt/416ObMi
Oct 03, 2023 1:45:39 PM org.flywaydb.core.internal.license.VersionPrinter printVersion
INFO: 
Oct 03, 2023 1:45:39 PM org.flywaydb.core.FlywayExecutor execute
INFO: Database: jdbc:postgresql://postgres.local:5432/db (PostgreSQL 13.10)
Oct 03, 2023 1:45:40 PM org.flywaydb.core.internal.command.DbValidate validate
INFO: Successfully validated 3 migrations (execution time 00:00.090s)
Oct 03, 2023 1:45:40 PM org.flywaydb.core.internal.command.DbMigrate migrateGroup
INFO: Current version of schema "public": 1
Oct 03, 2023 1:45:40 PM org.flywaydb.core.internal.command.DbMigrate doMigrateGroup
INFO: Migrating schema "public" to version "2 - add column"
...

Environment Information

PostgreSQL 13.10

JDK 17

micronautVersion=4.1.2
micronautApplicationVersion=4.1.1
micronautDataVersion=4.1.2
micronautFlywayVersion=6.2.0
micronautSqlVersion=5.0.1

The most recent versions with expected behaviour are:

micronautVersion=3.10.1
micronautApplicationVersion=3.7.10
micronautDataVersion=3.10.0
micronautFlywayVersion=5.5.0
micronautSqlVersion=4.8.1

Example Application

No response

Version

4.1.2

Not running migrations in vanilla project

Apologies if this is answered elsewhere. I have a "vanilla" Gradle project: no submodules, etc.

I use Micronaut 1.2.2 and Micronaut Data 1.0.0.M1.

I'm not seeing Flyway migrations. I tried to follow the instructions from https://micronaut-projects.github.io/micronaut-flyway/latest/guide/index.html best I could.

Ways I checked:

  • Run a test against a table defined in a Flyway migration
  • Bring up the app, check the "Flyway" management endpoint

To reproduce:

https://github.com/binkley/spikes/blob/f2de634366dd38b3ed4dc71092e57239403f5073/micronaut-hello-world/src/test/java/hello/world/data/FooRepositoryTest.java#L15

Remove/comment the @Disabled annotation from this test for this commit, and run the tests.

Alternatively:

$ ./gradlew shadowJar
$ java -jar build/libs/hello-world-0.1.jar

Then look at the /admin/flyway endpoint, and see there are no migrations.

Random infinite updates on startup

It may be the same as #11 but I don't have Hibernate, although Spring transactions are in use. Sometimes it keeps running Flyway migrations until JDBC pool runs out of connections. I've put a breakpoint at DatabaseFactory.createDatabase in Flyway which produced the following two stack traces (for you to compare):

Stacktrace 1
Breakpoint reached
	  at org.flywaydb.core.internal.database.DatabaseFactory.createDatabase(DatabaseFactory.java:86)
	  at org.flywaydb.core.Flyway.execute(Flyway.java:1670)
	  at org.flywaydb.core.Flyway.migrate(Flyway.java:1356)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:80)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$33(DefaultBeanContext.java:1333)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$446.931548023.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidates(DefaultBeanContext.java:1334)
	  at io.micronaut.context.DefaultApplicationContext.findBeanCandidates(DefaultApplicationContext.java:241)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidatesInternal$67(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$467.1600206621.apply(Unknown Source:-1)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.lambda$compute$0(ConcurrentLinkedHashMap.java:721)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap$$Lambda$340.432430300.apply(Unknown Source:-1)
	  at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidatesInternal(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2378)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:597)
	  at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1032)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:81)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$33(DefaultBeanContext.java:1333)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$446.931548023.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidates(DefaultBeanContext.java:1334)
	  at io.micronaut.context.DefaultApplicationContext.findBeanCandidates(DefaultApplicationContext.java:241)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidatesInternal$67(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$467.1600206621.apply(Unknown Source:-1)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.lambda$compute$0(ConcurrentLinkedHashMap.java:721)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap$$Lambda$340.432430300.apply(Unknown Source:-1)
	  at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidatesInternal(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2378)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:597)
	  at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1032)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:81)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$33(DefaultBeanContext.java:1333)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$446.931548023.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidates(DefaultBeanContext.java:1334)
	  at io.micronaut.context.DefaultApplicationContext.findBeanCandidates(DefaultApplicationContext.java:241)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidatesInternal$67(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$467.1600206621.apply(Unknown Source:-1)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.lambda$compute$0(ConcurrentLinkedHashMap.java:721)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap$$Lambda$340.432430300.apply(Unknown Source:-1)
	  at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidatesInternal(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2378)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:597)
	  at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1032)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:81)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$33(DefaultBeanContext.java:1333)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$446.931548023.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidates(DefaultBeanContext.java:1334)
	  at io.micronaut.context.DefaultApplicationContext.findBeanCandidates(DefaultApplicationContext.java:241)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidatesInternal$67(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$467.1600206621.apply(Unknown Source:-1)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.lambda$compute$0(ConcurrentLinkedHashMap.java:721)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap$$Lambda$340.432430300.apply(Unknown Source:-1)
	  at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidatesInternal(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2378)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:597)
	  at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1032)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:81)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$initializeContext$20(DefaultBeanContext.java:1195)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$601.1280081260.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1208)
	  at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:236)
	  at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2313)
	  at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:199)
	  at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:187)
	  at io.micronaut.test.extensions.AbstractMicronautExtension.startApplicationContext(AbstractMicronautExtension.java:234)
	  at io.micronaut.test.extensions.AbstractMicronautExtension.beforeClass(AbstractMicronautExtension.java:160)
	  at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.beforeAll(MicronautJunit5Extension.java:44)
	  at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.lambda$invokeBeforeAllCallbacks$7(ClassTestDescriptor.java:358)
	  at org.junit.jupiter.engine.descriptor.ClassTestDescriptor$$Lambda$244.1025309396.execute(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	  at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.invokeBeforeAllCallbacks(ClassTestDescriptor.java:358)
	  at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.before(ClassTestDescriptor.java:197)
	  at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.before(ClassTestDescriptor.java:74)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:132)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$205.1708169732.execute(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$204.1525409936.invoke(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$203.1487500813.execute(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	  at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda$209.966544353.accept(Unknown Source:-1)
	  at java.util.ArrayList.forEach(ArrayList.java:1540)
	  at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$205.1708169732.execute(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$204.1525409936.invoke(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$203.1487500813.execute(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	  at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
	  at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	  at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
	  at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
	  at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
	  at org.junit.platform.launcher.core.DefaultLauncher$$Lambda$165.712609105.accept(Unknown Source:-1)
	  at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
	  at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
	  at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
	  at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
	  at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	  at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	  at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Stacktrace 2
Breakpoint reached
	  at org.flywaydb.core.internal.database.DatabaseFactory.createDatabase(DatabaseFactory.java:86)
	  at org.flywaydb.core.Flyway.execute(Flyway.java:1670)
	  at org.flywaydb.core.Flyway.migrate(Flyway.java:1356)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:80)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$33(DefaultBeanContext.java:1333)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$446.931548023.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidates(DefaultBeanContext.java:1334)
	  at io.micronaut.context.DefaultApplicationContext.findBeanCandidates(DefaultApplicationContext.java:241)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidatesInternal$67(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$467.1600206621.apply(Unknown Source:-1)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.lambda$compute$0(ConcurrentLinkedHashMap.java:721)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap$$Lambda$340.432430300.apply(Unknown Source:-1)
	  at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidatesInternal(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2378)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:597)
	  at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1032)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:81)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$33(DefaultBeanContext.java:1333)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$446.931548023.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidates(DefaultBeanContext.java:1334)
	  at io.micronaut.context.DefaultApplicationContext.findBeanCandidates(DefaultApplicationContext.java:241)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidatesInternal$67(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$467.1600206621.apply(Unknown Source:-1)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.lambda$compute$0(ConcurrentLinkedHashMap.java:721)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap$$Lambda$340.432430300.apply(Unknown Source:-1)
	  at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidatesInternal(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2378)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:597)
	  at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1032)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:81)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$33(DefaultBeanContext.java:1333)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$446.931548023.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidates(DefaultBeanContext.java:1334)
	  at io.micronaut.context.DefaultApplicationContext.findBeanCandidates(DefaultApplicationContext.java:241)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidatesInternal$67(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$467.1600206621.apply(Unknown Source:-1)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.lambda$compute$0(ConcurrentLinkedHashMap.java:721)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap$$Lambda$340.432430300.apply(Unknown Source:-1)
	  at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidatesInternal(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2378)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:597)
	  at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1032)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:81)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$33(DefaultBeanContext.java:1333)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$446.931548023.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidates(DefaultBeanContext.java:1334)
	  at io.micronaut.context.DefaultApplicationContext.findBeanCandidates(DefaultApplicationContext.java:241)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidatesInternal$67(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$467.1600206621.apply(Unknown Source:-1)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.lambda$compute$0(ConcurrentLinkedHashMap.java:721)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap$$Lambda$340.432430300.apply(Unknown Source:-1)
	  at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidatesInternal(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2378)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:597)
	  at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1032)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:81)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$33(DefaultBeanContext.java:1333)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$446.931548023.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidates(DefaultBeanContext.java:1334)
	  at io.micronaut.context.DefaultApplicationContext.findBeanCandidates(DefaultApplicationContext.java:241)
	  at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidatesInternal$67(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$467.1600206621.apply(Unknown Source:-1)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.lambda$compute$0(ConcurrentLinkedHashMap.java:721)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap$$Lambda$340.432430300.apply(Unknown Source:-1)
	  at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1737)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
	  at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
	  at io.micronaut.context.DefaultBeanContext.findBeanCandidatesInternal(DefaultBeanContext.java:2340)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2378)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:597)
	  at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1032)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:81)
	  at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$651.1119149914.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner$$Lambda$650.1752894940.accept(Unknown Source:-1)
	  at java.util.Optional.ifPresent(Optional.java:183)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	  at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.jdbc.tomcat.$DatasourceFactory$TomcatPoolDataSourceMetadataProviderDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:205)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.configuration.metrics.binder.datasource.$DataSourcePoolMetricsBinderFactory$DataSourceMeterBinderDefinition.doBuild(Unknown Source:-1)
	  at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	  at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:201)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.configuration.metrics.micrometer.$MeterRegistryFactory$MeterRegistryConfigurerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:615)
	  at io.micronaut.context.DefaultBeanContext.streamOfType(DefaultBeanContext.java:602)
	  at io.micronaut.context.BeanLocator.streamOfType(BeanLocator.java:108)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:48)
	  at io.micronaut.configuration.metrics.micrometer.MeterRegistryCreationListener.onCreated(MeterRegistryCreationListener.java:37)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:577)
	  at io.micronaut.context.UnresolvedProvider.get(UnresolvedProvider.java:58)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:56)
	  at io.micronaut.configuration.metrics.binder.cache.MicronautCaffeineCacheMetricsBinder.onCreated(MicronautCaffeineCacheMetricsBinder.java:38)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1543)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2417)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:962)
	  at io.micronaut.cache.$DefaultCacheManagerDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2163)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1849)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:997)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:982)
	  at io.micronaut.cache.interceptor.$CacheInterceptorDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2495)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2395)
	  at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:854)
	  at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$10(AbstractBeanDefinition.java:1088)
	  at io.micronaut.context.AbstractBeanDefinition$$Lambda$492.376187927.resolveBean(Unknown Source:-1)
	  at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1697)
	  at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1083)
	  at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:959)
	  at io.micronaut.discovery.client.$$CachingCompositeDiscoveryClientDefinition$InterceptedDefinition.build(Unknown Source:-1)
	  at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1494)
	  at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:1949)
	  at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1851)
	  at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1829)
	  at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:582)
	  at io.micronaut.health.HeartbeatDiscoveryClientCondition.matches(HeartbeatDiscoveryClientCondition.java:38)
	  at io.micronaut.context.RequiresCondition.matchesCustomConditions(RequiresCondition.java:308)
	  at io.micronaut.context.RequiresCondition.processPostStartRequirements(RequiresCondition.java:188)
	  at io.micronaut.context.RequiresCondition.matches(RequiresCondition.java:83)
	  at io.micronaut.context.AbstractBeanContextConditional.isEnabled(AbstractBeanContextConditional.java:53)
	  at io.micronaut.context.AbstractBeanDefinition.isEnabled(AbstractBeanDefinition.java:89)
	  at io.micronaut.context.DefaultBeanContext.lambda$initializeContext$20(DefaultBeanContext.java:1195)
	  at io.micronaut.context.DefaultBeanContext$$Lambda$601.1280081260.test(Unknown Source:-1)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	  at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	  at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	  at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	  at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	  at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	  at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	  at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	  at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	  at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1208)
	  at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:236)
	  at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2313)
	  at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:199)
	  at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:187)
	  at io.micronaut.test.extensions.AbstractMicronautExtension.startApplicationContext(AbstractMicronautExtension.java:234)
	  at io.micronaut.test.extensions.AbstractMicronautExtension.beforeClass(AbstractMicronautExtension.java:160)
	  at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.beforeAll(MicronautJunit5Extension.java:44)
	  at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.lambda$invokeBeforeAllCallbacks$7(ClassTestDescriptor.java:358)
	  at org.junit.jupiter.engine.descriptor.ClassTestDescriptor$$Lambda$244.1025309396.execute(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	  at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.invokeBeforeAllCallbacks(ClassTestDescriptor.java:358)
	  at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.before(ClassTestDescriptor.java:197)
	  at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.before(ClassTestDescriptor.java:74)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:132)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$205.1708169732.execute(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$204.1525409936.invoke(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$203.1487500813.execute(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	  at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda$209.966544353.accept(Unknown Source:-1)
	  at java.util.ArrayList.forEach(ArrayList.java:1540)
	  at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$205.1708169732.execute(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$204.1525409936.invoke(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$203.1487500813.execute(Unknown Source:-1)
	  at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
	  at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
	  at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
	  at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	  at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
	  at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
	  at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
	  at org.junit.platform.launcher.core.DefaultLauncher$$Lambda$165.712609105.accept(Unknown Source:-1)
	  at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
	  at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
	  at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
	  at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
	  at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	  at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	  at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

Failed migrations via micronaut-jpa cause beanCreation error with no failed migration logs

If a migration fails (invalid SQL etc, whatever) whilst being applied by micronaut-flyway in the context of a micronaut-jpa project a bean creation error is thrown but no migration failure logging from flyway is shown, making it very hard to diagnose what the actual problem is.

Looking at the BeanCreatedEventListener, DataSourceMigrationRunner it doesn't do any logging of the exception?

.ifPresent(flywayConfig -> run(flywayConfig, dataSource));

Logs:

2020-07-14 01:44:43:870       main INFO  tractFlywayMigration -                           - Running migrations for database with qualifier [default]
2020-07-14 01:44:43:875       main INFO  cense.VersionPrinter -                           - Flyway Community Edition 6.4.4 by Redgate
2020-07-14 01:44:43:963       main INFO  base.DatabaseFactory -                           - Database: jdbc:postgresql://pro-rds-stub:5432/db (PostgreSQL 12.3)
2020-07-14 01:44:44:058       main INFO  l.command.DbValidate -                           - Successfully validated 2 migrations (execution time 00:00.035s)
2020-07-14 01:44:44:077       main INFO  al.command.DbMigrate -                           - Current version of schema "public": 1
2020-07-14 01:44:44:113       main INFO  al.command.DbMigrate -                           - Migrating schema "public" to version 2 - account
2020-07-14 01:44:44:148       main ERROR al.command.DbMigrate -                           - Migration of schema "public" to version 2 - account failed! Changes successfully rolled back.
2020-07-14 01:44:44:170       main ERROR ut.runtime.Micronaut -                           - Error starting Micronaut server: Bean definition [com.test.$UserControllerDefinition$Intercepted] could not be loaded: Error instantiating bean of type  [org.hibernate.boot.registry.StandardServiceRegistry]

Message: Bean Factory [Definition: io.micronaut.configuration.hibernate.jpa.EntityManagerFactoryBean] returned null
Path Taken: SessionFactory.hibernateSessionFactory([SessionFactoryBuilder sessionFactoryBuilder]) --> SessionFactoryBuilder.hibernateSessionFactoryBuilder([MetadataSources metadataSources],ValidatorFactory validatorFactory) --> MetadataSources.hibernateMetadataSources(JpaConfiguration jpaConfiguration,[StandardServiceRegistry standardServiceRegistry]) --> StandardServiceRegistry.hibernateStandardServiceRegistry(String dataSourceName,[DataSource dataSource])
io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [com.test.$UserControllerDefinition$Intercepted] could not be loaded: Error instantiating bean of type  [org.hibernate.boot.registry.StandardServiceRegistry]

Message: Bean Factory [Definition: io.micronaut.configuration.hibernate.jpa.EntityManagerFactoryBean] returned null
Path Taken: SessionFactory.hibernateSessionFactory([SessionFactoryBuilder sessionFactoryBuilder]) --> SessionFactoryBuilder.hibernateSessionFactoryBuilder([MetadataSources metadataSources],ValidatorFactory validatorFactory) --> MetadataSources.hibernateMetadataSources(JpaConfiguration jpaConfiguration,[StandardServiceRegistry standardServiceRegistry]) --> StandardServiceRegistry.hibernateStandardServiceRegistry(String dataSourceName,[DataSource dataSource])
	at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1533)
	at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:220)
	at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2763)
	at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:227)
	at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:166)
	at io.micronaut.runtime.Micronaut.start(Micronaut.java:64)
	at com.test.Main.main(Main.java:17)
Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type  [org.hibernate.boot.registry.StandardServiceRegistry]

Message: Bean Factory [Definition: io.micronaut.configuration.hibernate.jpa.EntityManagerFactoryBean] returned null
Path Taken: SessionFactory.hibernateSessionFactory([SessionFactoryBuilder sessionFactoryBuilder]) --> SessionFactoryBuilder.hibernateSessionFactoryBuilder([MetadataSources metadataSources],ValidatorFactory validatorFactory) --> MetadataSources.hibernateMetadataSources(JpaConfiguration jpaConfiguration,[StandardServiceRegistry standardServiceRegistry]) --> StandardServiceRegistry.hibernateStandardServiceRegistry(String dataSourceName,[DataSource dataSource])
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1897)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:2630)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2616)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2299)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2273)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:715)
	at io.micronaut.configuration.hibernate.jpa.TransactionalSessionInterceptor.<init>(TransactionalSessionInterceptor.java:50)
	at io.micronaut.configuration.hibernate.jpa.$TransactionalSessionInterceptorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1888)
	at io.micronaut.context.DefaultBeanContext.getScopedBeanForDefinition(DefaultBeanContext.java:2386)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2957)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2838)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:1039)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1165)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1844)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1160)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1009)
	at io.micronaut.configuration.hibernate.jpa.$TransactionalSession$InterceptedDefinition.build(Unknown Source)
	at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:143)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1888)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:2630)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2616)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2299)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2273)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1233)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForField(AbstractBeanDefinition.java:1465)
	at io.micronaut.context.AbstractBeanDefinition.injectBeanField(AbstractBeanDefinition.java:751)

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(deps): update actions/upload-artifact action to v4.4.0
  • fix(deps): update dependency io.micronaut.testresources:micronaut-test-resources-bom to v2.6.0

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/workflows/central-sync.yml
  • actions/checkout v4
  • gradle/wrapper-validation-action v3
  • actions/setup-java v4
.github/workflows/graalvm-dev.yml
  • actions/checkout v4
  • actions/checkout v4
.github/workflows/graalvm-latest.yml
  • actions/checkout v4
  • actions/checkout v4
.github/workflows/gradle.yml
  • actions/checkout v4
  • graalvm/setup-graalvm v1.2.3
  • gradle/gradle-build-action v3.5.0
  • mikepenz/action-junit-report v4
  • actions/upload-artifact v4.3.6@834a144ee995460fba8ed112a2fc961b36a5ec5a
  • haya14busa/action-cond v1
.github/workflows/publish-snapshot.yml
  • actions/checkout v4
  • actions/cache v4
  • actions/setup-java v4
.github/workflows/release.yml
  • actions/checkout v4
  • gradle/wrapper-validation-action v3
  • actions/setup-java v4
  • actions/upload-artifact v4.3.6@834a144ee995460fba8ed112a2fc961b36a5ec5a
  • actions/upload-artifact v4.3.6@834a144ee995460fba8ed112a2fc961b36a5ec5a
  • actions/download-artifact v4.1.8@fa0a91b85d4f404e444e00e005971372dc801d16
  • slsa-framework/slsa-github-generator v2.0.0
  • actions/checkout v4.1.7@692973e3d937129bcbf40652eb9f2f61becf3332
  • actions/download-artifact v4.1.8@fa0a91b85d4f404e444e00e005971372dc801d16
  • softprops/action-gh-release v2.0.8@c062e08bd532815e2082a85e87e3ef29c3e6d191
gradle
gradle.properties
settings.gradle
  • io.micronaut.build.shared.settings 7.2.1
build.gradle
buildSrc/settings.gradle
buildSrc/build.gradle
buildSrc/src/main/groovy/io.micronaut.build.internal.flyway-base.gradle
buildSrc/src/main/groovy/io.micronaut.build.internal.flyway-module.gradle
buildSrc/src/main/groovy/io.micronaut.build.internal.flyway-tests.gradle
flyway/build.gradle
flyway-bom/build.gradle
gradle/libs.versions.toml
  • io.micronaut:micronaut-core-bom 4.6.3
  • org.flywaydb:flyway-core 10.17.2
  • org.flywaydb:flyway-mysql 10.17.2
  • org.flywaydb:flyway-sqlserver 10.17.2
  • org.flywaydb:flyway-database-oracle 10.17.2
  • org.flywaydb:flyway-database-postgresql 10.17.2
  • org.graalvm.nativeimage:svm 23.1.4
  • io.micronaut.serde:micronaut-serde-bom 2.11.0
  • io.micronaut.sql:micronaut-sql-bom 5.8.1
  • io.micronaut.testresources:micronaut-test-resources-bom 2.5.4
  • io.micronaut.gradle:micronaut-gradle-plugin 4.4.2
  • javax.persistence:javax.persistence-api 2.2
gradle/license.gradle
test-suite-java/build.gradle
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.9

  • Check this box to trigger a request for Renovate to run again on this repository

Micronaut with Hibernate and Flyway: Recursive update exception

Hi,

i'm using Micronaut with Hibernate, a H2 database and Flyway. Sometimes (i can't reproduce it, but I have seen it more than once), I get this exception:

22:40:04.243 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [private]
22:40:06.284 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
22:40:06.508 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
22:40:06.536 [main] INFO  o.f.c.i.license.VersionPrinter - Flyway Community Edition 5.2.1 by Boxfuse
22:40:06.552 [main] INFO  o.f.c.i.database.DatabaseFactory - Database: jdbc:h2:./dev (H2 1.4)
22:40:06.605 [main] INFO  o.f.core.internal.command.DbValidate - Successfully validated 1 migration (execution time 00:00.014s)
22:40:06.621 [main] INFO  o.f.core.internal.command.DbMigrate - Current version of schema "PUBLIC": 1
22:40:06.621 [main] INFO  o.f.core.internal.command.DbMigrate - Schema "PUBLIC" is up to date. No migration necessary.
22:40:06.651 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [org.hibernate.SessionFactory] could not be loaded: Error instantiating bean of type  [org.hibernate.boot.registry.StandardServiceRegistry]

Message: Recursive update
Path Taken: SessionFactory.hibernateSessionFactory([SessionFactoryBuilder sessionFactoryBuilder]) --> SessionFactoryBuilder.hibernateSessionFactoryBuilder([MetadataSources metadataSources],ValidatorFactory validatorFactory) --> MetadataSources.hibernateMetadataSources(JpaConfiguration jpaConfiguration,[StandardServiceRegistry standardServiceRegistry]) --> StandardServiceRegistry.hibernateStandardServiceRegistry(String dataSourceName,[DataSource dataSource])
io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [org.hibernate.SessionFactory] could not be loaded: Error instantiating bean of type  [org.hibernate.boot.registry.StandardServiceRegistry]

Message: Recursive update
Path Taken: SessionFactory.hibernateSessionFactory([SessionFactoryBuilder sessionFactoryBuilder]) --> SessionFactoryBuilder.hibernateSessionFactoryBuilder([MetadataSources metadataSources],ValidatorFactory validatorFactory) --> MetadataSources.hibernateMetadataSources(JpaConfiguration jpaConfiguration,[StandardServiceRegistry standardServiceRegistry]) --> StandardServiceRegistry.hibernateStandardServiceRegistry(String dataSourceName,[DataSource dataSource])
	at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1164)
	at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:235)
	at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2293)
	at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:199)
	at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:186)
	at io.micronaut.runtime.Micronaut.start(Micronaut.java:69)
	at io.micronaut.runtime.Micronaut.run(Micronaut.java:288)
	at io.micronaut.runtime.Micronaut.run(Micronaut.java:274)
	at de.mkammerer.email2kindle.Application.main(Application.java:7)
Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type  [org.hibernate.boot.registry.StandardServiceRegistry]

Message: Recursive update
Path Taken: SessionFactory.hibernateSessionFactory([SessionFactoryBuilder sessionFactoryBuilder]) --> SessionFactoryBuilder.hibernateSessionFactoryBuilder([MetadataSources metadataSources],ValidatorFactory validatorFactory) --> MetadataSources.hibernateMetadataSources(JpaConfiguration jpaConfiguration,[StandardServiceRegistry standardServiceRegistry]) --> StandardServiceRegistry.hibernateStandardServiceRegistry(String dataSourceName,[DataSource dataSource])
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1492)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2143)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1829)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1809)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:987)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:981)
	at io.micronaut.configuration.hibernate.jpa.$EntityManagerFactoryBean$HibernateMetadataSourcesDefinition.doBuild(Unknown Source)
	at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:193)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1474)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2143)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1829)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1809)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:987)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:981)
	at io.micronaut.configuration.hibernate.jpa.$EntityManagerFactoryBean$HibernateSessionFactoryBuilderDefinition.build(Unknown Source)
	at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:196)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1474)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2143)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1829)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1809)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:987)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:981)
	at io.micronaut.configuration.hibernate.jpa.$EntityManagerFactoryBean$HibernateSessionFactoryDefinition.build(Unknown Source)
	at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:196)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1474)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2143)
	at io.micronaut.context.DefaultBeanContext.loadContextScopeBean(DefaultBeanContext.java:1741)
	at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1162)
	... 8 common frames omitted
Caused by: java.lang.IllegalStateException: Recursive update
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1739)
	at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
	at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
	at io.micronaut.context.DefaultBeanContext.findBeanCandidatesInternal(DefaultBeanContext.java:2320)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2358)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:587)
	at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1022)
	at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:81)
	at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
	at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$null$0(DataSourceMigrationRunner.java:58)
	at java.base/java.util.Optional.ifPresent(Optional.java:183)
	at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.lambda$onCreated$1(DataSourceMigrationRunner.java:58)
	at java.base/java.util.Optional.ifPresent(Optional.java:183)
	at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:55)
	at io.micronaut.configuration.dbmigration.flyway.DataSourceMigrationRunner.onCreated(DataSourceMigrationRunner.java:36)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1523)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2143)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:1829)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:1809)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:987)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:981)
	at io.micronaut.configuration.hibernate.jpa.$EntityManagerFactoryBean$HibernateStandardServiceRegistryDefinition.doBuild(Unknown Source)
	at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:113)
	at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:193)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1474)
	... 36 common frames omitted

Process finished with exit code 1

After starting it again (no changes), it works. Maybe some kind of race condition?

Environment Information

  • Operating System: Linux Fedora 30
  • Micronaut Version: 1.1.0
  • JDK Version:
openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment AdoptOpenJDK (build 12.0.1+12)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 12.0.1+12, mixed mode, sharing)

Enabling flyway clean scema does not work with native image

Expected Behavior

Should work

Actual Behaviour

Fails with:

Caused by: java.lang.ClassNotFoundException: org.flywaydb.core.internal.command.DbClean
        at java.lang.Class.forName(DynamicHub.java:1136)
        at org.flywaydb.core.internal.util.ClassUtils.instantiate(ClassUtils.java:57)
        ... 31 common frames omitted

Steps To Reproduce

Use this config:

flyway:
  datasources:
    default:
      enabled: true
      baseline-on-migrate: true
      clean-schema: true

Environment Information

Any

Example Application

No response

Version

3.7.0

Add the ability to run Flyway.clean() based on a profile's configuration

Would it be possible to add the ability to call the org.flywaydb.core.Flyway.clean() method if some kind of configuration existed for a certain profile.

My use case is one where when running tests I'd like to have Flyway clean out the schema and then migrate before the tests get run. I have an application-test.yml that is loaded when tests are run that has configuration that is slightly different from the primary application.yml such as different connection URL for the database than is normally used for development. (Basically the db is configured to run in-memory to accelerate the running of tests).

Maybe something like this (modified from io.micronaut.configuration.dbmigration.flyway.FlywayStartupEventListener.run())

public void run(boolean async) {
    flywayConfigurationProperties.stream()
            .filter(c -> c.isAsync() == async)
            .filter(c -> c.isCleanable()) //not sure a good way of doing this, but need to filter base on config
            .map(c -> applicationContext.findBean(Flyway.class, Qualifiers.byName(c.getNameQualifier())))
            .filter(Optional::isPresent)
            .map(Optional::get)
            .forEach(Flyway::clean);

    flywayConfigurationProperties.stream()
            .filter(c -> c.isAsync() == async)
            .map(c -> applicationContext.findBean(Flyway.class, Qualifiers.byName(c.getNameQualifier())))
            .filter(Optional::isPresent)
            .map(Optional::get)
            .forEach(Flyway::migrate);
}

The above example would require some configurable way to capture the desire to have the database "cleaned". I will admit lack of knowledge as to how the Micronaut configuration system works so I'm not sure where to put something like this (or if it is even possible)

Thanks so much!

Flyway doesn't pick up migrations in a native image

Task List

  • Steps to reproduce provided
  • Stacktrace (if present) provided
  • Example that reproduces the problem uploaded to Github
  • Full description of the issue provided (see below)

Steps to Reproduce

  1. Check out the example application
  2. Run ./gradlew shadowJar
  3. Build a native image with ./docker-build.sh
  4. Run the native image with docker and watch the logs

Expected Behaviour

Migrations should have been picked up by Flyway.

Actual Behaviour

The following exception is thrown:

io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [javax.sql.DataSource] could not be loaded: Unable to obtain inputstream for resource: db/migration/V1__Test.sql

Environment Information

  • Operating System: MacOS
  • Micronaut Version: 2.0.0
  • JDK Version: 11

Example Application

https://github.com/kuvasz-uptime/kuvasz

The migrations are working like a charm if I build a docker image with openjdk, or I run the application with Gradle.

Documentation implies that you must always specify a location

The guide (https://micronaut-projects.github.io/micronaut-flyway/latest/guide/index.html) shows that this snippet is necessary:

flyway:
  datasources:
    default: 
      locations: classpath:databasemigrations
    books: 
      locations: classpath:databasemigrations

Nothing in the document indicates that this setting is optional. However, using it overrides Flyway's default location (db/migration).

After an hour stepping through the tests and Flyway code, I figured out that this is sufficient:

flyway:
  datasources:
    default:
      enabled: true

Not specifying the flyway.datasources property set skips the FlywayConfigurationProperties auto-configuration. The documentation is correct, in that, if you override the locations, the auto-configuration will be loaded with the defaults, but then you lose the default location provided by Flyway itself.

I suggest that the primary snippet be changed to only contain an enabled property. Then, below that, another example can show the multiple locations scenario. This will illustrate to new users that simply "enabling" the micronaut-flyway library will already yield its full benefits, and then, separately, it will indicate that some customization is also possible.

An example of these properties at work can be found here: https://github.com/arnaldop/flyway-default-location

Support Java-based migrations

Feature description

Flyway itself supports Java-based migrations. I've used this feature in the past on Spring Boot projects where we could inject resources for executing code as part of the migration. It worked out of the box with no additional configuration in Spring.

I tried a similar approach recently on a Micronaut project that uses flyway. Our sql migrations run as expected, but Flyway never picks up the Java migration. I don't see anything in the Micronaut Flyway docs or guide that indicates this is possible currently. I had presumed that as long as the migration extended BaseJavaMigration that it would get picked up by Flyway but am seeing no such thing.

Add flyway as managed dependency version

Feature description

Gradle Version Catalogs is an amazing feature. The most amazing way to use it is with micronaut-bom, this is incredible, because can sync all Gradle plugins to managed Micronaut dependency versions. I can re-use protobuf and grpc versions from it and use it for initializing the Protobuf Gradle plugin. But I can't do the same thing for the flyway. I think it will be nice to add flyway as a managed dependency as well. It will allow syncing the Micronaut flyway version to the Gradle flyway plugin version.

Allow to run the migration manually

Feature description

Currently, if we disable Flyway migration, there is no way to inject a Flyway object and run the migration by ourselves.

For some edge cases, we need a way to control the Flyway migration, so we need a way to access the Flyway object and run the migration by ourselves.

[native-image] Vanilla project does not work with GraalVM 19.3.0

Micronaut 1.2.8 (and 1.3.0.M2)
GraalVM 19.3.0.

implementation 'io.micronaut.configuration:micronaut-flyway'

Vanilla project created.

$ native-image --no-server -cp build/libs/my-service-0.1-all.jar
$ ./my-service
13:12:23.677 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [io.micronaut.configuration.dbmigration.flyway.FlywayConfigurationProperties] could not be loaded: Error instantiating bean of type [io.micronaut.configuration.dbmigration.flyway.FlywayConfigurationProperties]: null
io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [io.micronaut.configuration.dbmigration.flyway.FlywayConfigurationProperties] could not be loaded: Error instantiating bean of type [io.micronaut.configuration.dbmigration.flyway.FlywayConfigurationProperties]: null
	at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1264)
	at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:236)
	at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2446)
	at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:200)
	at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:187)
	at io.micronaut.runtime.Micronaut.start(Micronaut.java:69)
	at com.pencepay.webhook.Application.main(Application.kt:14)
Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [io.micronaut.configuration.dbmigration.flyway.FlywayConfigurationProperties]: null
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1626)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2307)
	at io.micronaut.context.DefaultBeanContext.loadContextScopeBean(DefaultBeanContext.java:1888)
	at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1262)
	... 6 common frames omitted
Caused by: java.lang.ExceptionInInitializerError: null
	at com.oracle.svm.core.hub.ClassInitializationInfo.initialize(ClassInitializationInfo.java:290)
	at java.lang.Class.ensureInitialized(DynamicHub.java:475)
	at org.flywaydb.core.internal.util.FeatureDetector.isSlf4jAvailable(FeatureDetector.java:96)
	at org.flywaydb.core.internal.logging.LogCreatorFactory.getLogCreator(LogCreatorFactory.java:39)
	at org.flywaydb.core.api.logging.LogFactory.getLog(LogFactory.java:78)
	at org.flywaydb.core.internal.util.FeatureDetector.<clinit>(FeatureDetector.java:25)
	at com.oracle.svm.core.hub.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:350)
	at com.oracle.svm.core.hub.ClassInitializationInfo.initialize(ClassInitializationInfo.java:270)
	at java.lang.Class.ensureInitialized(DynamicHub.java:475)
	at org.flywaydb.core.internal.logging.LogCreatorFactory.getLogCreator(LogCreatorFactory.java:35)
	at org.flywaydb.core.api.logging.LogFactory.getLog(LogFactory.java:78)
	at org.flywaydb.core.api.configuration.ClassicConfiguration.<clinit>(ClassicConfiguration.java:57)
	at com.oracle.svm.core.hub.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:350)
	at com.oracle.svm.core.hub.ClassInitializationInfo.initialize(ClassInitializationInfo.java:270)
	at java.lang.Class.ensureInitialized(DynamicHub.java:475)
	at org.flywaydb.core.api.configuration.FluentConfiguration.<init>(FluentConfiguration.java:46)
	at io.micronaut.configuration.dbmigration.flyway.FlywayConfigurationProperties.<init>(FlywayConfigurationProperties.java:48)
	at io.micronaut.configuration.dbmigration.flyway.$FlywayConfigurationPropertiesDefinition.doBuild(Unknown Source)
	at io.micronaut.context.AbstractParametrizedBeanDefinition.build(AbstractParametrizedBeanDefinition.java:117)
	at io.micronaut.context.BeanDefinitionDelegate.build(BeanDefinitionDelegate.java:109)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1598)
	... 9 common frames omitted
Caused by: org.flywaydb.core.api.FlywayException: Unable to instantiate class org.flywaydb.core.internal.logging.javautil.JavaUtilLogCreator : org.flywaydb.core.internal.logging.javautil.JavaUtilLogCreator
	at org.flywaydb.core.internal.util.ClassUtils.instantiate(ClassUtils.java:63)
	at org.flywaydb.core.internal.logging.LogCreatorFactory.getLogCreator(LogCreatorFactory.java:46)
	at org.flywaydb.core.api.logging.LogFactory.getLog(LogFactory.java:78)
	at org.flywaydb.core.internal.util.ClassUtils.<clinit>(ClassUtils.java:39)
	at com.oracle.svm.core.hub.ClassInitializationInfo.invokeClassInitializer(ClassInitializationInfo.java:350)
	at com.oracle.svm.core.hub.ClassInitializationInfo.initialize(ClassInitializationInfo.java:270)
	... 29 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.flywaydb.core.internal.logging.javautil.JavaUtilLogCreator
	at com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:60)
	at java.lang.Class.forName(DynamicHub.java:1197)
	at org.flywaydb.core.internal.util.ClassUtils.instantiate(ClassUtils.java:61)
	... 34 common frames omitted

Do you know how to fix this? Problem seems to be in Caused by: java.lang.ClassNotFoundException: org.flywaydb.core.internal.logging.javautil.JavaUtilLogCreator

Adding it with @TypeHint to Application did not help.

Change artifact id and package

Change artifact id to io.micronaut.flyway.

Rename package io.micronaut.configuration.dbmigration.flyway to io.micronaut.flyway

Hibernate validation runs before flyway

Issue description

I know this is a duplicate of #7, but in my experience this is still happening, even in Micronaut v4.

Could it be that I'm affected because I use hibernate-reactive?

JDBC url without explicit username is not honored.

Hello!
Seems like some uri parameters are lost on their way to flyway
With the following configuration:

postgres:
    reactive:
        client:
            uri: postgresql://dbhost:5432/database?user=user&password=pass&currentSchema=current
---
flyway:
    datasources:
        default:
            url: jdbc:${postgres.reactive.client.uri}

Flyway migrations are not triggered at all.

if we explicitly specify username and password in the config, flyway at least tries to connect but the currentSchema is lost anyway.
This is also visible in the log:

08:54:39.574 [main] INFO  o.f.c.i.license.VersionPrinter - Flyway Community Edition 5.2.1 by Boxfuse
--
  | 08:54:40.658 [main] INFO  o.f.c.i.database.DatabaseFactory - Database: jdbc:postgresql://dbhost:5432/database (PostgreSQL 11.2)
  | 08:54:40.736 [main] WARN  o.f.c.i.database.base.Database - Flyway upgrade recommended: PostgreSQL 11.2 is newer than this version of Flyway and support has not been tested.
  | 08:54:40.767 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [io.micronaut.configuration.dbmigration.flyway.FlywayConfigurationProperties] could not be loaded: Unable to determine current schema as search_path is empty. Set the current schema in currentSchema parameter of the JDBC URL or in Flyway's schemas property.
  | io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [io.micronaut.configuration.dbmigration.flyway.FlywayConfigurationProperties] could not be loaded: Unable to determine current schema as search_path is empty. Set the current schema in currentSchema parameter of the JDBC URL or in Flyway's schemas property.
  | at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1164)
  | at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:235)
  | at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2293)
  | at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:199)
  | at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:186)
  | at io.micronaut.runtime.Micronaut.start(Micronaut.java:69)
  | at io.micronaut.runtime.Micronaut.run(Micronaut.java:288)
  | at io.micronaut.runtime.Micronaut.run(Micronaut.java:274)
  | at at.porscheinformatik.scshub.backend.Application.main(Application.java:11)
  | Caused by: org.flywaydb.core.api.FlywayException: Unable to determine current schema as search_path is empty. Set the current schema in currentSchema parameter of the JDBC URL or in Flyway's schemas property.
  | at org.flywaydb.core.internal.database.postgresql.PostgreSQLConnection.doGetCurrentSchema(PostgreSQLConnection.java:64)
  | at org.flywaydb.core.internal.database.base.Connection.getCurrentSchema(Connection.java:92)
  | at org.flywaydb.core.Flyway.prepareSchemas(Flyway.java:1742)
  | at org.flywaydb.core.Flyway.execute(Flyway.java:1663)
  | at org.flywaydb.core.Flyway.migrate(Flyway.java:1341)
  | at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.runFlyway(AbstractFlywayMigration.java:80)
  | at io.micronaut.configuration.dbmigration.flyway.AbstractFlywayMigration.run(AbstractFlywayMigration.java:70)
  | at io.micronaut.configuration.dbmigration.flyway.AlternativeMigrationRunner.onCreated(AlternativeMigrationRunner.java:62)
  | at io.micronaut.configuration.dbmigration.flyway.AlternativeMigrationRunner.onCreated(AlternativeMigrationRunner.java:40)
  | at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1523)
  | at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2143)
  | at io.micronaut.context.DefaultBeanContext.loadContextScopeBean(DefaultBeanContext.java:1741)
  | at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1162)
  | ... 8 common frames omitted

The docs don't mention currentSchema properties.
Note that we:

  • don't have datasource properties since we use reactive postgres
  • reuse the postgres connection string by property reference

Micronaut with Flyway in GraalVM seems not running migrations

Hello!

I'm trying to create a microservice template built in Micronaut, and I'm using the micronaut-flyway module to apply migrations to a PostgreSQL database.

I have a script that creates a GraalVM native-image from a shadowJar with all the flyway migrations. When I run the native image, it manages to connect to the database, however the flyway migrations are not run, so any endpoint will fail because the database doesn't exist.

However, when I run the shadowJar with any OpenJDK (tested 1.8 and 11) it works like a charm.

You can check the code (and run it) here:

https://github.com/kmruiz/micronaut-react-microfrontend-template

I tried to debug, but I can't find any stacktrace related to flyway.

Environment Information

  • Operating System: Windows 10 (Docker)
  • Micronaut Version: 1.1.0
  • JDK Version: GraalVM 19

Thank you for working on this module!

Migrating several schemas using the `schemas` property only migrates the first schema in the list

Task List

  • Steps to reproduce provided
  • Stacktrace (if present) provided
  • Example that reproduces the problem uploaded to Github
  • Full description of the issue provided (see below)

Steps to Reproduce

  1. Clone demo project and run the application. Notice how output from startup specifies that only the first schema is migrated:
13:11:35.310 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
13:11:35.488 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
13:11:35.507 [main] INFO  i.m.flyway.AbstractFlywayMigration - Running migrations for database with qualifier [default]
13:11:35.508 [main] INFO  o.f.c.i.license.VersionPrinter - Flyway Community Edition 6.4.4 by Redgate
13:11:35.530 [main] INFO  o.f.c.i.database.DatabaseFactory - Database: jdbc:h2:mem:orgdb (H2 1.4)
13:11:35.577 [main] INFO  o.f.c.internal.database.base.Schema - Creating schema "flyway_history_schema" ...
13:11:35.578 [main] INFO  o.f.c.internal.database.base.Schema - Creating schema "test" ...
13:11:35.586 [main] INFO  o.f.c.i.s.JdbcTableSchemaHistory - Creating Schema History table "flyway_history_schema"."flyway_schema_history" ...
13:11:35.641 [main] INFO  o.f.core.internal.command.DbMigrate - Current version of schema "flyway_history_schema": null
13:11:35.645 [main] INFO  o.f.core.internal.command.DbMigrate - Migrating schema "flyway_history_schema" to version 1 - create tables
13:11:35.676 [main] INFO  o.f.core.internal.command.DbMigrate - Successfully applied 1 migration to schema "flyway_history_schema" (execution time 00:00.044s)
13:11:35.963 [main] INFO  io.micronaut.runtime.Micronaut - Startup completed in 1361ms. Server Running: http://localhost:8080

Expected Behaviour

All schemas in the list of schemas should be migrated. Ideally not the main schema as this should only hold firefly state tables.

Actual Behaviour

The first schema in the comma separated list of schemas are migrated

Environment Information

  • Operating System: Linux Mint 19.3 Cinnamon
  • Micronaut Version: 2.0.1 with Micronaut flyway 2.0.0
  • JDK Version: openjdk 11.0.8 2020-07-14

Example Application

https://github.com/runarhk/mn_flyway_schemas_migration

Upgrade to Micronaut 2.0.2

Once Micronaut 2.0.2 is released, upgrade this module to use it.

This is necessary because it will bring micronaut-sql 3.0.x that is compiled with Micronaut 2 and fixes the issues with @Factory for old Micronaut 1.3.x version.

P.S: We could also use Micronaut 2.0.1 but as we are going to release Micronaut 2.0.2 really soon it is better to wait for that release.

Unable to configure flyway.datasources.*.ignore-migration-patterns

Expected Behavior

flyway.datasources.*.ignore-migration-patterns.ignore-migration-patterns "*:missing" should allow us to ignore missing migrations, which is useful for concurrent development of different features.

Actual Behaviour

When starting the application which runs migrations

java.lang.NullPointerException: null\n\tat org.flywaydb.core.internal.info.MigrationInfoImpl.lambda$validate$0(MigrationInfoImpl.java:317)

This happens because flyway 8.0.3 added an ignoreMigrationPatterns(ValidatePattern... ignoreMigrationPatterns) overload. micronaut-inject-java generates a mapping for both the CSV string and the object array, but the object array call happens to be last, therefore is the one that matters.

Creating this bug here mainly for documentation purposes. But I'd also be interested if there was a fix that I am not seeing because I can't think of an easy one.

Steps To Reproduce

# application.yaml
flyway:
  datasources:
    default:
      ignore-migration-patterns: "*:missing"
  • creates branches A and B from main
  • checkout branch A, create migration A, and start application to migrate
  • checkout branch B, create migration B, and start application to migrate
    • note: branch B does not have migration A

Workarounds

Unfortunately, we cannot use the deprecated ignoreMissingMigrations as a workaround, because micronaut-inject-java does not allow the setting of @Deprecated properties.

However, we can downgrade to a version of flyway that doesn't have that overload.

constraints {
  implementation("org.flywaydb:flyway-core") {
    version {
      strictly "8.0.2"
    }
  }
}

Downgrading to a version of flyway that does not have ignoreMissingMigrations deprecated might allow us to set ignore-missing-migrations: true but I haven't tried that.

Also if there were a way to explicitly support a deprecated property in micronaut-inject-java that might work too.

Environment Information

  • io.micronaut.flyway:micronaut-flyway:5.1.2
  • org.flywaydb:flyway-core:8.4.2

Example Application

No response

Version

3.3.2

Fire a micronaut event to signal when migrations are completed

This package runs the migrations upon receiving the micronaut StartupEvent.

Often, user code also wants to detect that startup is complete and listens for that same event. But when using an automatic migration system like this, what user code most likely wants to do is detect that migrations are completed.

Since there is no way for user code to control the order in which event listeners get called, it would be useful to have a dedicated event that signals the completion of migrations.

it it not work with hibernate-gorm

my config like this

hibernate:
  hbm2ddl:
    auto: update
  show_sql: true
#  dbCreate: create-drop
datasources:
  default:
    driverClassName: com.mysql.cj.jdbc.Driver
    dialect: org.hibernate.dialect.MySQL57Dialect
    url: jdbc:mysql://127.0.0.1:3306/micronaut_test
    username: root
    password: root@123

flyway:
  datasources:
    default:
      locations: classpath:databasemigrations

Flyway 6.5.5 breaks GraalVM integration with jOOQ

After upgrading the module to Flyway 6.5.5 the GraalVM integration with jOOQ and Postgres is broken. See https://gitlab.com/micronaut-projects/micronaut-graal-tests/-/jobs/727020492

This is because of this issue fixed flyway/flyway#2903, that includes this commit flyway/flyway@e281909 that modifies the Scanner that this modules overrides

@TargetClass(className = "org.flywaydb.core.internal.scanner.Scanner")
.

Flyway 6.5.4 works properly.

NPE when settings locations

Hi, I'm following the guide to setup a flyway migration and I'm getting a NPE. I think it's because there are 2 locations methods in org.flywaydb.core.api.configuration.FluentConfiguration. One for strings and other for Location objects, which when it's called, sets all values of locations array to null.

My setup:
IntelliJ
Gradle
Java 1.8
micronaut:1.0.4
micronaut-flyway:1.0.0.RC2

java.lang.NullPointerException: null
	at org.flywaydb.core.internal.scanner.Scanner.<init>(Scanner.java:59)
	at org.flywaydb.core.Flyway.execute(Flyway.java:1674)
	at org.flywaydb.core.Flyway.migrate(Flyway.java:1341)
	at io.micronaut.configuration.dbmigration.flyway.FlywayStartupEventListener.lambda$run$3(FlywayStartupEventListener.java:110)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)

Code generated from annotations processor:

        var5 = this.getValueForPath(var1, var2, Argument.of(String[].class, "locations"), new String[]{"locations"});
        if (var5.isPresent()) {
            try {
                var4.fluentConfiguration.locations((String[])var5.get());
            } catch (NoSuchMethodError var42) {
            }
        }

        var5 = this.getValueForPath(var1, var2, Argument.of(Location[].class, "locations"), new String[]{"locations"});
        if (var5.isPresent()) {
            try {
                var4.fluentConfiguration.locations((Location[])var5.get());
            } catch (NoSuchMethodError var41) {
            }
        }

Flyway migration fails in native

Expected Behavior

When running native deployment, we expect to see that Flyway migrations are successfully runned.

Actual Behaviour

When starting app in native, flyway migration fails (runs successfully in normal mode).

The folder structure is src/main/resources/db/migration/2021 (we separate migration scripts by year, so we don't have long list of migration files to scroll through in IDE) and I feel like this structure is what messes it up. When looking in logs, the year part of folder structure seems to be gone in native deploy:

io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [javax.sql.DataSource] could not be loaded: Unable to obtain inputstream for resource: db/migration/V202112101316__add_transactions_table.sql
	at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1938)
	at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:237)
	at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:3453)
...
Caused by: org.flywaydb.core.api.FlywayException: Unable to obtain inputstream for resource: db/migration/V202112101316__add_transactions_table.sql
	at org.flywaydb.core.internal.resource.classpath.ClassPathResource.read(ClassPathResource.java:118)
	at org.flywaydb.core.internal.resolver.ChecksumCalculator.calculateChecksumForResource(ChecksumCalculator.java:64)
...

Have tried to explicitly set the folder in graalVM properties as is said in Micronaut Flyway Guide, but this really did nothing. Setting flyway and graalVM folders to classpath:db/migration/2021 and 2022 respectively gave error "public" has version 202202091124, but no migration could be resolved in the configured locations !

Only fix was to remove foldering inside db/migrations and that did the trick. But I'd still really love to use foldering, and I believe I might not be the only one.

Steps To Reproduce

  • Create additional folders in db/migration, eg. db/migration/2022
  • Add migration script
  • ./gradlew nativeCompile
  • Run and see the error

Environment Information

  • Kotlin
  • native

Example Application

No response

Version

5.1.2 (micronaut 3.3.0)

Configure a baseline version

Issue description

I have a project that has a lof of migrations (currently we are at V0175__foo.sql)

I want to use a baseline migration as stated here: baseline migrations and here tutorial. That is to say, I would like to have a B0175__Baseline.sql that will be the only script that will be run when I start a new container.

My question is that this feature is marked as a Flyway Teams, but the micronaut-flyway library has flags for it: https://micronaut-projects.github.io/micronaut-flyway/latest/guide/#additionalConfig

flyway.datasources.*.baseline-version 
flyway.datasources.*.baseline-description 
flyway.datasources.*.baseline-on-migrate 
flyway.datasources.*.baseline-migration-prefix

But as much as I've experimented I can't make it work.

This are the steps I'm following:
1º Run the application and execute the 175 migrations
2º Dump into a script the final state of the database and name it B0175_Baseline.sql.
3º Add this values to application.yml:
According to the documentation I understood that it needed to be like this:

flyway:
  datasources:
    default:
      enabled: true
      baseline-migration-prefix: B
      baseline-version: 175
      baseline-description: Baseline
      locations:
        - classpath:db/changelog/sql/migration
        - classpath:db/changelog/sql/data

But actually it returned an error until I did this:

flyway:
  baseline-migration-prefix: B
  baseline-version: 175
  baseline-description: Baseline
  datasources:
    default:
      enabled: true
      locations:
        - classpath:db/changelog/sql/migration
        - classpath:db/changelog/sql/data

Nothing happens. The script is ignored. What is the supposed procedure and behavior of the properties?

I may be doing something wrong as I haven't found an example.

Thanks in advance.

Add support for flyway-enterprise

Feature description

By default, the most recent version of micronaut-flyway utilizes flyway 8.x which no longer supports MySQL 5.7.

Flyway does provide an enterprise version which works with older databases.

It would be great if we could utilize the enterprise version with micronaut.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.