Redgate Flyway

Flyway Locations Setting

Description

Array of locations to scan recursively for migrations. The location type is determined by its prefix.

For commandline usage, we recommend storing migrations in a separate folder to your Flyway installation. This makes upgrading easier, as the whole installation folder can be deleted and overwritten without affecting migrations.

Classpath

Locations without a prefix or locations starting with classpath: point to a package on the classpath and may contain both SQL and Java-based migrations. You must ensure the package is available on the classpath (see Adding to the classpath).

Filesystem

Locations starting with filesystem: point to a directory on the filesystem, may only contain SQL migrations and are only scanned recursively down non-hidden directories. Relative paths will be resolved against your working directory.

Amazon S3

Locations starting with s3: point to a bucket in AWS S3, may only contain SQL migrations, and are scanned recursively. They are in the format s3:<bucket>(/optionalfolder/subfolder). To use AWS S3, the AWS SDK v2 and dependencies must be included, and configured for your S3 account.

Google Cloud Storage

Flyway Teams

Locations starting with gcs: point to a bucket in Google Cloud Storage, may only contain SQL migrations, and are scanned recursively. They are in the format gcs:<bucket>(/optionalfolder/subfolder). To use GCS, the GCS library must be included, and the GCS environment variable GOOGLE_APPLICATION_CREDENTIALS must be set to the credentials file for the service account that has access to the bucket.

Wildcards

Locations can contain wildcards. This allows matching against a path pattern instead of a single path. Supported wildcards:

  • ** : Matches any 0 or more directories. (e.g. db/**/test will match db/version1.0/test, db/version2.0/test, db/development/version/1.0/test but not db/version1.0/release)
  • * : Matches any 0 or more non-separator characters. (e.g. db/release1.* will match db/release1.0, db/release1.1, db/release1.123 but not db/release2.0)
  • ? : Matches any 1 non-separator character. (e.g. db/release1.? will match db/release1.0, db/release1.1 but not db/release1.11)

Type

String array

Default

API:

classpath:db/migration

Maven/Gradle: filesystem:src/main/resources/db/migration

Command-line:

filesystem:sql

Note: We do not recommend relying on the commandline default value. It may be changed in a future release.

Usage

Flyway Desktop

This can't be set in a config file via Flyway Desktop, although it will be honoured, and it can be configured as an advanced parameter in operations on the Migrations page.

Command-line

./flyway -locations="filesystem:./sql" info

TOML Configuration File

[flyway]
locations = ["filesystem:./sql"]

Configuration File

flyway.locations=filesystem:./sql

Environment Variable

FLYWAY_LOCATIONS=filesystem:./sql

API

Flyway.configure()
    .locations("filesystem:./sql")
    .load()

Gradle

flyway {
    locations = ['filesystem:./sql']
}

Maven

<configuration>
  <locations>
    <location>filesystem:./sql</location>
  </locations>
</configuration>

Related Reading


Didn't find what you were looking for?