Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kinetica support #1

Merged
merged 4 commits into from
Aug 8, 2022
Merged

Kinetica support #1

merged 4 commits into from
Aug 8, 2022

Conversation

luissemantic
Copy link
Owner

These changes are to support the Kinetica database. Kinetica is a SQL based data warehouse database that does not support transaction processing. In effect, there is no ability to commit or rollback.
The instructions in https://flywaydb.org/documentation/contribute/contributingDatabaseSupport were followed. In a nutshell a new package folder for Kinetica was created with the corresponding classes being extended as per the documentation. There were some variations where the documentation did not work. Instead, I followed the package IgniteLight for the Apache Ignite database, which is quite similar in syntax. Furthermore, ExecutionTemplate had to be re-implemented into KineticaExecutionTemplate (i.e., override TransactionExecutionTemplate). Then KineticaExecutionTemplate is being used by KinetiaDatabaseType and overrides the method createTransactionalExecutionTemplate that is found in DatabaseType. The reason for doing this is that TransactionExcutionTemplate tries to commit and rollback transactions and these actions do not exist in Kinetica so that action had overridden.
Lastly, according to the documentation, the plugin is supposed to be added through
DatabaseTypeRegister.registerForDatabaseTypes add a registeredDatabaseTypes.add(new FooDatabaseType(classLoader)); line.
No such method was found anywhere. However, adding the package in src/main/resources/META-INF/services/org.flywaydb.core.extensibility.Plugin was all that was needed for the package to be registered and to make it work properly.

@luissemantic luissemantic merged commit 761ecc1 into master Aug 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant