Skip to main content
Version: 1.5.0

Database migration

AWE uses Flyway as default tool for database script version control.

flyway-logo

Aside from using it internally to manage the AWE database model, you can manage your own scripts or use any other external tool.

Get started

To automatically run Flyway database migrations on AWE startup, add spring.flyway.enabled=true properties in your configuration. Typically, migrations are from scripts in the form <MODULE>_V<VERSION>__<NAME>.sql (with <VERSION> an underscore-separated version, such as ‘1.1’ or ‘2_1’).

spring.flyway.enabled=true

By default, they are located in the folder classpath:db/migration/{vendor}, but you can modify that location by setting spring.flyway.locations. This is a comma-separated list of one or more classpath: or filesystem: locations. For example, the following configuration would search for scripts in both the default classpath location and the /opt/migration directory:

spring.flyway.locations=classpath:db/migration/{vendor},filesystem:/opt/migration

Rather than using db/migration, the preceding configuration sets the folder to use according to the type of the database (such as db/migration/mysql for MySQL). The list of supported databases is available in DatabaseDriver.

AWE framework customizes the Flyway migration process to manage multiple modules. By default, the initial module is called AWE but you can add the modules you need to run scripts. For example, if you need to use AWE scheduler module and you have that sql scripts in your applications, you need configure like this:

# List of modules to migrate. 
awe.database.migration-modules=AWE,SCHEDULER,APP

Note: remeber call your sql scripts with the same name as the configured module. Ex.: APP_V1.0__Init_schema.sql