Sha256: 504eec198cab7d9ae973d01f2f2e6bd43e7ecdd5097b7622a382e09dadd7c4c4
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
require 'cassandra_object/schema/tasks' module CassandraObject class Schema extend Tasks class << self DEFAULT_CREATE_KEYSPACE = { 'strategy_class' => 'SimpleStrategy', 'strategy_options:replication_factor' => 1 } def create_keyspace(keyspace, options = {}) stmt = "CREATE KEYSPACE #{keyspace}" if options.empty? options = DEFAULT_CREATE_KEYSPACE end system_execute statement_with_options(stmt, options) end def drop_keyspace(keyspace) system_execute "DROP KEYSPACE #{keyspace}" end def create_column_family(column_family, options = {}) stmt = "CREATE COLUMNFAMILY #{column_family} " + "(KEY varchar PRIMARY KEY)" execute statement_with_options(stmt, options) end def alter_column_family(column_family, options) stmt = "ALTER TABLE #{column_family}" execute statement_with_options(stmt, options) end def add_index() end private def statement_with_options(stmt, options) if options.any? with_stmt = options.map do |k,v| "#{k} = #{CassandraCQL::Statement.quote(v)}" end.join(' AND ') stmt << " WITH #{with_stmt}" end stmt end def execute(cql) CassandraObject::Base.execute_cql cql end def system_execute(cql) @system_cql ||= CassandraCQL::Database.new(CassandraObject::Base.config.servers, keyspace: 'system') @system_cql.execute cql end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gotime-cassandra_object-4.7.2 | lib/cassandra_object/schema.rb |