New! – Try automated migration testing Learn more

Flyway Documentation

Poll

Google Cloud Spanner (Beta)

Supported Versions

  • Latest

Support Level

Compatible
Certified ⏳ Pending certification
Guaranteed

Driver

URL format jdbc:cloudspanner:/projects/project_name/instances/instance_name/databases/database_name?credentials=path/to/keyfile.json
SSL support No
Ships with Flyway Command-line Yes
Maven Central coordinates com.google.cloud:google-cloud-spanner-jdbc:2.2.6
Supported versions 2.2.6 and later
Default Java class com.google.cloud.spanner.jdbc.JdbcDriver

Support Level determines the degree of support available for this database (learn more).

Flyway Teams Features for Cloud Spanner

Executing multiple schema changes against Cloud Spanner is comparatively slow due to its need to validate your data. You can read more about it here.

Flyway Teams Edition alleviates this via batching which executes multiple schema changes in one request to minimize latency and improve performance.

To enable batching follow the guide here for your platform.
In the Flyway Command-Line this would look like the following:

> flyway migrate -batch=true

You can find out more about Flyway Teams Edition here.

Using Flyway with Google Cloud Spanner

Pre-requisites

  • Using Flyway with Maven?
    • Include the latest Flyway GCP Spanner dependency here in your pom
  • Using Flyway with Gradle?
    • Include the latest Flyway GCP Spanner dependency here as a buildscript dependency

Configuring Flyway

You must configure a JDBC URL that points to your database. You can configure a connection using this sample URL as an example:

jdbc:cloudspanner:/projects/<project_name>/instances/<instance_name>/databases/<database_name>?credentials=<path/to/keyfile.json>

We need to fetch three things to complete this url: ​

  • project_name
  • instance_name
  • database_name
  • A path to a keyfile.json for authentication

project_name, instance_name, database_name can all be found on the Cloud Spanner web interface. For authentication, we recommend using the ‘keyfile’. This requires creating a service account for Cloud Spanner.

To do this, open IAM within GCP project settings. There you can create a service account. Upon creating this you’ll have the option to download the keyfile.

The authentication file needs to be accessible to Flyway, so save it somewhere accessible on your machine. Then configure path_to_service_account to point to this file.

You can learn more about service accounts here.

Set this URL in the url property in your Flyway configuration. ​

Other configuration

Set the user and password properties to empty in your Flyway configuration since we’re authenticating using the JDBC URL i.e.

flyway.user=
flyway.password=

In a Flyway configuration file.

Share Your Feedback