Sha256: e13eca22a296e174560b7a0230138d8b68a6d5ace3992365599da6962dd7665d

Contents?: true

Size: 791 Bytes

Versions: 7

Compression:

Stored size: 791 Bytes

Contents

module CassandraObject
  class Schema
    module Tasks
      def dump(io)
        column_families.each do |column_family|
          io.puts run_command("DESCRIBE COLUMNFAMILY #{column_family}")
          io.puts
        end
      end

      def load(filename)
        `cqlsh -k #{keyspace} -f #{filename} #{server}`
      end

      def column_families
        run_command('DESCRIBE COLUMNFAMILIES').split.sort
      end

      private
        def run_command(command)
          `echo "#{command};" | cqlsh -k #{keyspace} #{server}`.sub(/^(.*)$/, '').strip
        end

        def keyspace
          CassandraObject::Base.connection_config.keyspace
        end

        def server
          CassandraObject::Base.connection_config.servers.first.gsub(/:.*/, '')
        end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
gotime-cassandra_object-4.4.5 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.4.4 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.4.3 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.4.0 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.3.2 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.3.1 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.3.0 lib/cassandra_object/schema/tasks.rb