Class: Cequel::Schema::Keyspace Deprecated
- Inherits:
-
Object
- Object
- Cequel::Schema::Keyspace
- Extended by:
- Forwardable
- Defined in:
- lib/cequel/schema/keyspace.rb
Overview
These methods will be exposed directly on Metal::Keyspace in a future version of Cequel
Provides read/write access to the schema for a keyspace and the tables it contains
Instance Method Summary collapse
-
#alter_table(name) { ... } ⇒ void
Make changes to an existing table in the keyspace.
-
#create!(options = {}) ⇒ void
Create this keyspace in the database.
-
#create_table(name) { ... } ⇒ void
Create a table in the keyspace.
-
#drop! ⇒ void
Drop this keyspace from the database.
-
#drop_table(name) ⇒ void
Drop this table from the keyspace.
-
#initialize(keyspace) ⇒ Keyspace
constructor
private
A new instance of Keyspace.
-
#read_table(name) ⇒ Table
Object representation of the table schema as it currently exists in the database.
-
#sync_table(name) { ... } ⇒ void
(also: #synchronize_table)
Create or update a table to match a given schema structure.
-
#truncate_table(name) ⇒ void
Remove all data from this table.
Constructor Details
#initialize(keyspace) ⇒ Keyspace
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Keyspace.
20 21 22 |
# File 'lib/cequel/schema/keyspace.rb', line 20 def initialize(keyspace) @keyspace = keyspace end |
Instance Method Details
#alter_table(name) { ... } ⇒ void
This method returns an undefined value.
Make changes to an existing table in the keyspace
124 125 126 127 128 |
# File 'lib/cequel/schema/keyspace.rb', line 124 def alter_table(name, &block) updater = TableUpdater.apply(keyspace, name) do |updater| UpdateTableDSL.apply(updater, &block) end end |
#create!(options = {}) ⇒ void
This method returns an undefined value.
Create this keyspace in the database
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/cequel/schema/keyspace.rb', line 38 def create!( = {}) = Metal::Keyspace.new(keyspace.configuration.except(:keyspace)) = .symbolize_keys [:class] ||= 'SimpleStrategy' if [:class] == 'SimpleStrategy' [:replication_factor] ||= 1 end = .map do |name, value| "'#{name}': #{Cequel::Type.quote(value)}" end .execute(<<-CQL) CREATE KEYSPACE #{keyspace.name} WITH REPLICATION = {#{.join(', ')}} CQL end |
#create_table(name) { ... } ⇒ void
This method returns an undefined value.
Create a table in the keyspace
102 103 104 105 106 |
# File 'lib/cequel/schema/keyspace.rb', line 102 def create_table(name, &block) table = Table.new(name) CreateTableDSL.apply(table, &block) TableWriter.apply(keyspace, table) end |
#drop! ⇒ void
This method returns an undefined value.
Drop this keyspace from the database
65 66 67 |
# File 'lib/cequel/schema/keyspace.rb', line 65 def drop! keyspace.execute("DROP KEYSPACE #{keyspace.name}") end |
#drop_table(name) ⇒ void
This method returns an undefined value.
Drop this table from the keyspace
149 150 151 |
# File 'lib/cequel/schema/keyspace.rb', line 149 def drop_table(name) keyspace.execute("DROP TABLE #{name}") end |
#read_table(name) ⇒ Table
Returns object representation of the table schema as it currently exists in the database.
77 78 79 |
# File 'lib/cequel/schema/keyspace.rb', line 77 def read_table(name) TableReader.read(keyspace, name) end |
#sync_table(name) { ... } ⇒ void Also known as: synchronize_table
This method returns an undefined value.
Create or update a table to match a given schema structure. The desired schema structure is defined by the directives given in the block; this is then compared to the existing table in the database (if it is defined at all), and then the table is created or altered accordingly.
166 167 168 169 170 171 |
# File 'lib/cequel/schema/keyspace.rb', line 166 def sync_table(name, &block) existing = read_table(name) updated = Table.new(name) CreateTableDSL.apply(updated, &block) TableSynchronizer.apply(keyspace, existing, updated) end |
#truncate_table(name) ⇒ void
This method returns an undefined value.
Remove all data from this table. Truncating a table can be much slower than simply iterating over its keys and issuing ‘DELETE` statements, particularly if the table does not have many rows. Truncating is equivalent to dropping a table and then recreating it
139 140 141 |
# File 'lib/cequel/schema/keyspace.rb', line 139 def truncate_table(name) keyspace.execute("TRUNCATE #{name}") end |