liquibase / liquibase-cassandra

Liquibase extension for Cassandra Support
Apache License 2.0
47 stars 34 forks source link

Add compatibility mode for AWS Keyspaces #303

Closed maximevw closed 2 days ago

maximevw commented 6 days ago

This PR aims to solve #297 (and also #128).

As discussed in the mentioned issue, it introduces a new property liquibase.cassandra.awsKeyspacesCompatibilityModeEnabled in the liquibase.properties file. Defining it to true means we are running against an AWS Keyspaces instance and need to use some alternative implementations to bypass the unimplemented CQL features in Keyspaces.

The different workarounds are:

I took advantage of these changes to fix some minor problems in README file, Javadoc and to improve some formatting.

filipelautert commented 4 days ago

@pasarbia are you able to help test us this PR?

sonarcloud[bot] commented 4 days ago

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud

pasarbia commented 4 days ago

hello, I will test it today. Thank you!

pasarbia commented 3 days ago

I have created a build from your branch fix/issue-297 @maximevw For some reasons, I got the initial error "countRows is not yet supported." I attached the log. issue-297.txt

maximevw commented 3 days ago

@pasarbia Yes, I think I know why. Indeed, you have to add the property liquibase.cassandra.awsKeyspacesCompatibilityModeEnabled with the value true in your Liquibase configuration file to activate the specific behaviour for AWS Keyspaces, otherwise it keeps the default behaviour (not working with AWS).

pasarbia commented 3 days ago

Good news! I've managed to run status and update commands without errors. Thank you!

filipelautert commented 2 days ago

Thanks @maximevw for the fix and @pasarbia for testing it!