namespace :cassie do
namespace :schema do desc "Initialize the keyspace for the current environment" task :init_keyspace do include Cassie::Tasks::IO begin name = Cassie.configuration[:keyspace] puts "-- Initializing '#{name}' Keyspace" query = Cassie::Schema::CreateKeyspaceQuery.new query.name = name if replication = Cassie.configuration[:replication] query.replication_class = replication[:class] if replication.has_key?(:class) query.replication_factor = replication[:replication_factor] if replication.has_key?(:replication_factor) end query.durable_writes = Cassie.configuration[:durable_writes] if Cassie.configuration.has_key?(:durable_writes) if Cassie.keyspace_exists?(query.name) puts " > '#{name}' already exists" else query.execute! end puts "-- done" rescue => e puts red("Couldn't create keyspace, check #{Cassie.paths[:cluster_configurations]}:\n#{query.to_cql}") puts "\t" output_error(e) abort end end end
end