Class: CassandraObject::Schema

Inherits:
Object
  • Object
show all
Extended by:
Tasks
Defined in:
lib/cassandra_object/schema.rb,
lib/cassandra_object/schema/tasks.rb

Defined Under Namespace

Modules: Tasks

Constant Summary collapse

DEFAULT_CREATE_KEYSPACE =
{
  'strategy_class' => 'SimpleStrategy',
  'strategy_options:replication_factor' => 1
}

Class Method Summary collapse

Methods included from Tasks

dump, load, table_names

Class Method Details

.add_index(column_family, column, index_name = nil) ⇒ Object



45
46
47
48
# File 'lib/cassandra_object/schema.rb', line 45

def add_index(column_family, column, index_name = nil)
  stmt = "CREATE INDEX #{index_name.nil? ? '' : index_name} ON #{column_family} (#{column})"
  keyspace_execute stmt
end

.alter_column_family(column_family, instruction, options = {}) ⇒ Object



36
37
38
39
# File 'lib/cassandra_object/schema.rb', line 36

def alter_column_family(column_family, instruction, options = {})
  stmt = "ALTER TABLE #{column_family} #{instruction}"
  keyspace_execute statement_with_options(stmt, options)
end

.create_column_family(column_family, options = {}) ⇒ Object



25
26
27
# File 'lib/cassandra_object/schema.rb', line 25

def create_column_family(column_family, options = {})
  create_table column_family, options
end

.create_keyspace(keyspace, options = nil) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/cassandra_object/schema.rb', line 13

def create_keyspace(keyspace, options = nil)
  stmt = "CREATE KEYSPACE #{keyspace}"

  options ||= DEFAULT_CREATE_KEYSPACE

  system_execute statement_with_options(stmt, options)
end

.create_table(table_name, options = {}) ⇒ Object



29
30
31
32
33
34
# File 'lib/cassandra_object/schema.rb', line 29

def create_table(table_name, options = {})
  stmt = "CREATE COLUMNFAMILY #{table_name} " +
         "(KEY varchar PRIMARY KEY)"

  keyspace_execute statement_with_options(stmt, options)
end

.drop_column_family(column_family) ⇒ Object



41
42
43
# File 'lib/cassandra_object/schema.rb', line 41

def drop_column_family(column_family)
  keyspace_execute "DROP TABLE #{column_family}"
end

.drop_index(index_name) ⇒ Object

If the index was not given a name during creation, the index name is <columnfamily_name>_<column_name>_idx.



51
52
53
# File 'lib/cassandra_object/schema.rb', line 51

def drop_index(index_name)
  keyspace_execute "DROP INDEX #{index_name}"
end

.drop_keyspace(keyspace) ⇒ Object



21
22
23
# File 'lib/cassandra_object/schema.rb', line 21

def drop_keyspace(keyspace)
  system_execute "DROP KEYSPACE #{keyspace}"
end