[BUGFIX] Update Cassandra driver to drop materialized views before tables #984
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue Type: Bugfix
Issue Summary
If a cassandra keyspace has a materialized view, the
drop
command will fail as views must be dropped before underlying tables.Change Summary
Updated
Drop()
implementation for thecassandra
driver to find materialized views and drop them before dropping table.Detailed Description:
If Cassandra (or ScyllaDB, which uses the
cassandra
driver) has a materialized view on a table, current version ofmigrate
will fail on thedrop
command. This is because the current implementation of the driver only executesDROP TABLE
commands. Whenmigrate
attempts to drop a table that has a materialized view the following error will be returned frommigrate
and thedrop
command will halt:Test Results
Has been tested on both Cassandra 3.0 and ScyllaDB 5.2.
Note: Materialized views were introduced in Cassandra 3.0 (2015) and ScyllaDB 3.0 (2019)