在测试之间擦拭Cassandra DB(Rspec)

jyl*_*li7 5 ruby testing rspec cassandra

我正在运行涉及到Cassandra数据库中数据的rspec测试。在两次测试之间擦除/清理数据库的最佳实践是什么?对于我的mongo数据,我正在使用DatabaseCleaner,并正在寻找与Cassandra相当的产品。我目前正在我的spec_helper.rb中执行以下操作,但是它非常慢,因此正在寻找更好的解决方案。谢谢!

config.before :each do
    ['column1', 'column2'].each do |name|
      begin
        $cassandra.drop_column_family(name)
      rescue
        next
      ensure
        cf = Cassandra::ColumnFamily.new(keyspace: 'db_name', name: name, comparator_type: 'TimeUUIDType')
        $cassandra.add_column_family(cf)
      end
    end
Run Code Online (Sandbox Code Playgroud)

小智 1

尝试截断、禁用autoSnapshotcassandra.yaml的键空间上的 Durable_writes 并禁用它们。

截断曾经非常慢,但自 1.1.1 以来已修复:https ://issues.apache.org/jira/browse/CASSANDRA-4153