Redgate Summit – The Database DevOps Transformation Watch now
PASS Data Community Summit logo

PASS Data Community Summit

A hybrid conference in Seattle and online

15-18 November

Flyway Documentation

This documentation site is not updated. The new documentation can now be found on




Comma-separated list of locations to scan recursively for migrations. The location type is determined by its prefix.


Unprefixed locations 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).


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.

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.

Flyway Community is limited to a maximum of 100 migrations in Amazon S3. Upgrade to Flyway Teams to allow unlimited migrations.

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.


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)





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

Configuration File


Environment Variable





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