Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HikariDataSource try to connect to MariaDB before Flyway create schema #650

Open
FrogDevelopper opened this issue Jan 14, 2025 · 0 comments

Comments

@FrogDevelopper
Copy link

Expected Behavior

When using Flyway with an empty database and flyway.datasources.default.create-schemas=true, the Datasource doesn't collect until the the schema is created

Actual Behaviour

When instancing the HikariUrlDataSource, the connection is checked, leading to an exception

[main] INFO i.m.c.DefaultApplicationContext$RuntimeConfiguredEnvironment - Established active environments: [test]
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
[main] WARN o.m.jdbc.message.server.ErrorPacket - Error: 1049-42000: Unknown database 'examples'

io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [io.micronaut.data.jdbc.config.SchemaGenerator] could not be loaded: Error instantiating bean of type [javax.sql.DataSource]

Message: Failed to initialize pool: (conn=158) Unknown database 'examples'
Path Taken: DatasourceFactory.dataSource(DatasourceConfiguration datasourceConfiguration)
...
Caused by: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: (conn=158) Unknown database 'examples'
at com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:584)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:571)
at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:98)
at com.zaxxer.hikari.HikariDataSource.(HikariDataSource.java:80)
at io.micronaut.configuration.jdbc.hikari.HikariUrlDataSource.(HikariUrlDataSource.java:35)
at io.micronaut.configuration.jdbc.hikari.DatasourceFactory.dataSource(DatasourceFactory.java:66)
at io.micronaut.configuration.jdbc.hikari.$DatasourceFactory$DataSource0$Definition.instantiate(Unknown Source)
at io.micronaut.context.BeanDefinitionDelegate.instantiate(BeanDefinitionDelegate.java:159)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2311)

I've tested with various version in Micronaut 4, and all have the same behavior

I don't know if something is incorrectly configured or not, but following documentation these config should be enough

datasources:
  default:
    url: jdbc:mariadb://localhost:3306/examples
    username: 'root'
    password: 'example'
    driver-class-name: 'org.mariadb.jdbc.Driver'
    dialect: MYSQL

flyway:
  datasources:
    default:
      enabled: true
      clean-schema: true
      create-schemas: true

Steps To Reproduce

  1. Checkout the example project micronaut-examples with branch flyway
  2. Start MariaDB service
  3. Run MyItemRepositoryTest

Environment Information

No response

Example Application

https://github.com/FrogDevelopper/micronaut-examples/tree/example/flyway

Version

4.4.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant