compile "io.micronaut.configuration:micronaut-flyway:1.0.0.RC1"
Flyway configuration
Configuration to integrate Micronaut and Flyway
Version: 1.0.0.RC1
1 Introduction
To use the Micronaut’s integration with Flyway you must have the micronaut-flyway
dependency on your classpath:
<dependency>
<groupId>io.micronaut.configuration</groupId>
<artifactId>micronaut-flyway</artifactId>
<version>{version}</version>
</dependency>
2 Configuration
You can define Flyway configuration for each datasource. The following example demonstrates using it:
datasources:
default: (3)
url: 'jdbc:h2:mem:flywayDb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE'
username: 'sa'
password: ''
driverClassName: 'org.h2.Driver'
jpa:
default: (3)
packages-to-scan:
- 'example.micronaut'
properties:
hibernate:
hbm2ddl:
auto: none (1)
show_sql: true
flyway:
datasources: (2)
default: (3)
locations: classpath:databasemigrations (4)
1 | Disable schema DDL creation. |
2 | Define flyway configuration under flyway.datasources key. |
3 | Configure flyway configuration for default data source. |
4 | The migrations directory is src/main/resources/databsemigrations . |
In that directory you need to include all your migrations, for example:
create table books (
id int not null primary key,
name varchar(255) not null,
constraint id unique (id),
constraint name unique (name),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
There are several options available for configuration:
Property | Type | Description |
---|---|---|
|
org.flywaydb.core.api.configuration.Configuration |
|
|
java.io.OutputStream |
|
|
java.lang.String[] |
|
|
boolean |
|
|
java.lang.String |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
java.lang.String[] |
|
|
java.lang.String |
|
|
java.lang.String[] |
|
|
java.lang.String |
|
|
org.flywaydb.core.api.MigrationVersion |
|
|
boolean |
|
|
java.util.Map |
|
|
java.lang.String |
|
|
java.lang.String |
|
|
java.lang.String |
|
|
java.lang.String |
|
|
java.lang.String |
|
|
java.lang.String |
|
|
java.lang.String[] |
|
|
javax.sql.DataSource |
|
|
int |
|
|
java.lang.String |
|
|
org.flywaydb.core.api.MigrationVersion |
|
|
java.lang.String |
|
|
boolean |
|
|
boolean |
|
|
org.flywaydb.core.api.callback.Callback[] |
|
|
boolean |
|
|
org.flywaydb.core.api.resolver.MigrationResolver[] |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
boolean |
|
|
java.lang.String |
|
|
boolean |
Set whether this flyway configuration is enabled. Default value (true). |
|
boolean |
Whether flyway migrations should run asynchronously. |
|
java.lang.String |
The JDBC url of the database to migrate |
|
java.lang.String |
The user of the database to migrate |
|
java.lang.String |
The password of the database to migrate |
By default Micronaut will configure Flyway to use the datasources defined under datasources configuration key. If
you want to use a different datasource you need to define the properties flyway.datasources.*.url , flyway.datasources.*.user
and flyway.datasources.*.password .
|
3 Endpoint
This configuration also provides a built-in endpoint to expose all the applied migrations in /flyway
.
To enable the endpoint add the following to the configuration:
endpoints:
flyway:
enabled: true (1)
sensitive: false (2)
1 | /flyway endpoint is enabled (this is the default). |
2 | /flyway endpoint is open for unauthenticated access. |
$ curl http://localhost:8080/flyway
[{
"name": "default",
"migrations": [{
"checksum": 1952043475,
"installedOn": "2018-11-12T11:32:52.000+0000",
"executionTime": 96,
"installedRank": 1,
"version": {
"version": "1"
},
"description": "init",
"installedBy": "root",
"state": "SUCCESS",
"type": "SQL",
"script": "V1__init.sql"
}, {
"checksum": -1926058189,
"installedOn": "2018-11-12T11:32:52.000+0000",
"executionTime": 10,
"installedRank": 2,
"version": {
"version": "2"
},
"description": "testdata",
"installedBy": "root",
"state": "SUCCESS",
"type": "SQL",
"script": "V2__testdata.sql"
}]
}]
See the section on Built-in endpoints in the user guide for more information. |