Module: Cequel::Record::Schema::ClassMethods
- Extended by:
- Forwardable
- Defined in:
- lib/cequel/record/schema.rb
Overview
Methods available on Cequel::Record class singletons to introspect and modify the schema defined in the database
Instance Attribute Summary collapse
-
#clustering_columns ⇒ Array<ClusteringColumn>
readonly
Clustering columns defined on the table.
-
#columns ⇒ Array<Column>
readonly
All columns defined on the table.
-
#key_column_names ⇒ Array<Symbol>
readonly
Names of all key columns (partition + clustering).
-
#key_columns ⇒ Array<Column>
readonly
All key columns (partition + clustering).
-
#partition_key_column_names ⇒ Array<Symbol>
readonly
Names of partition key columns.
-
#partition_key_columns ⇒ Array<PartitionKey>
readonly
Partition key columns defined on the table.
Instance Method Summary collapse
-
#compact_storage? ⇒ Boolean
‘true` if this table uses compact storage.
-
#read_schema ⇒ Schema::Table
Read the current state of this record’s table in Cassandra from the database.
-
#reflect_on_column(name) ⇒ Column
Column defined on table with given name.
-
#synchronize_schema ⇒ void
Read the current schema assigned to this record’s table from Cassandra, and make any necessary modifications (including creating the table for the first time) so that it matches the schema defined in the record definition.
-
#table_schema ⇒ Schema::Table
The schema as defined by the columns specified in the class definition.
Instance Attribute Details
#clustering_columns ⇒ Array<ClusteringColumn> (readonly)
Returns clustering columns defined on the table.
60 61 62 63 |
# File 'lib/cequel/record/schema.rb', line 60 def_delegators :table_schema, :columns, :key_columns, :key_column_names, :partition_key_columns, :partition_key_column_names, :clustering_columns, :compact_storage? |
#columns ⇒ Array<Column> (readonly)
Returns all columns defined on the table.
60 61 62 63 |
# File 'lib/cequel/record/schema.rb', line 60 def_delegators :table_schema, :columns, :key_columns, :key_column_names, :partition_key_columns, :partition_key_column_names, :clustering_columns, :compact_storage? |
#key_column_names ⇒ Array<Symbol> (readonly)
Returns names of all key columns (partition + clustering).
60 61 62 63 |
# File 'lib/cequel/record/schema.rb', line 60 def_delegators :table_schema, :columns, :key_columns, :key_column_names, :partition_key_columns, :partition_key_column_names, :clustering_columns, :compact_storage? |
#key_columns ⇒ Array<Column> (readonly)
Returns all key columns (partition + clustering).
60 61 62 63 |
# File 'lib/cequel/record/schema.rb', line 60 def_delegators :table_schema, :columns, :key_columns, :key_column_names, :partition_key_columns, :partition_key_column_names, :clustering_columns, :compact_storage? |
#partition_key_column_names ⇒ Array<Symbol> (readonly)
Returns names of partition key columns.
60 61 62 63 |
# File 'lib/cequel/record/schema.rb', line 60 def_delegators :table_schema, :columns, :key_columns, :key_column_names, :partition_key_columns, :partition_key_column_names, :clustering_columns, :compact_storage? |
#partition_key_columns ⇒ Array<PartitionKey> (readonly)
Returns partition key columns defined on the table.
60 61 62 63 |
# File 'lib/cequel/record/schema.rb', line 60 def_delegators :table_schema, :columns, :key_columns, :key_column_names, :partition_key_columns, :partition_key_column_names, :clustering_columns, :compact_storage? |
Instance Method Details
#compact_storage? ⇒ Boolean
Returns ‘true` if this table uses compact storage.
60 61 62 63 |
# File 'lib/cequel/record/schema.rb', line 60 def_delegators :table_schema, :columns, :key_columns, :key_column_names, :partition_key_columns, :partition_key_column_names, :clustering_columns, :compact_storage? |
#read_schema ⇒ Schema::Table
Read the current state of this record’s table in Cassandra from the database.
91 92 93 |
# File 'lib/cequel/record/schema.rb', line 91 def read_schema connection.schema.read_table(table_name) end |
#reflect_on_column(name) ⇒ Column
Returns column defined on table with given name.
68 |
# File 'lib/cequel/record/schema.rb', line 68 def_delegator :table_schema, :column, :reflect_on_column |
#synchronize_schema ⇒ void
This method returns an undefined value.
Read the current schema assigned to this record’s table from Cassandra, and make any necessary modifications (including creating the table for the first time) so that it matches the schema defined in the record definition
79 80 81 82 |
# File 'lib/cequel/record/schema.rb', line 79 def synchronize_schema Cequel::Schema::TableSynchronizer .apply(connection, read_schema, table_schema) end |
#table_schema ⇒ Schema::Table
Returns the schema as defined by the columns specified in the class definition.
99 100 101 |
# File 'lib/cequel/record/schema.rb', line 99 def table_schema @table_schema ||= Cequel::Schema::Table.new(table_name) end |