polyclay-cassandra-cql
cassandra persistence adapter for polyclay, the schema-enforcing document mapper
Last updated 7 years ago by kitcambridge .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install polyclay-cassandra-cql 
SYNC missed versions from official npm registry.

polyclay-cassandra-cql

A cassandra persistence adapter for Polyclay.

NPM

Build Status

This module relies on node-cassandra-cql for its cassandra driver.

Installation

npm install polyclay-cassandra polyclay

Polyclay is a peer dependency of this module.

Quick start

A quick example until more documentation is written:

var polyclay = require('polyclay'),
    CassandraAdapter = require('polyclay-cassandra'),
    cassandra = require('node-cassandra-cql')
    ;


var testKSName = 'polyclay_unit_tests';
var modelDefinition =
{
    properties:
    {
        key:           'string',
        name:          'string',
        created:       'date',
        foozles:       'array',
        snozzers:      'hash',
        is_valid:      'boolean',
        count:         'number',
        floating:      'number',
        map:            'string',
    },
    required:   [ 'name', 'is_valid', 'required_prop'],
    singular:   'model',
    plural:     'models'
};

Model = polyclay.Model.buildClass(modelDefinition);
polyclay.persist(Model);

var client = new cassandra.Client({
    hosts:    ['localhost'],
    port:     9042
});

var options =
{
    client: client,
    keyspace: 'polyclay_unit_tests',
    consistency: cassandra.types.consistencies.quorum
};

Model.setStorage(options, CassandraAdapter);

The keyspace is available at obj.adapter.keyspace and the model column family at obj.adapter.columnFamily. adapter.provision() creates keyspaces and column families if necessary. It is safe to call provision more than once; it will avoid trying to create the tables if they already exist.

Attachments are no longer supported by the cassandra adapter.

Cassandra types

The adapter adds several cassandra-specific types to the core javascript type list. The polyclay model definition names are in the left column. Cassandra types are in the right. No attempt has been made to implement map types with anything other than string keys.

| Polyclay type   | Cassandra type
| ==============: | :=============
| string          | text
| number          | double
| boolean         | boolean
| date            | timestamp
| uuid            | uuid
| timeuuid        | timeuuid
| set:string      | set<text>
| set:number      | set<double>
| set:date        | set<timestamp>
| set:uuid        | set<uuid>
| set:timeuuid    | set<timeuuid>
| list:string     | list<text>
| list:number     | list<double>
| list:date       | list<timestamp>
| list:uuid       | list<uuid>
| list:timeuuid   | list<timeuuid>
| map:string      | map<text, text>
| map:boolean     | map<text, boolean>
| map:number      | map<text, double>
| map:date        | map<text, timestamp>
| map:uuid        | map<text, uuid>
| map:timeuuid    | map<text, timeuuid>
| array           | text (json-stringified)
| hash            | text (json-stringified)
| reference       | text (json-stringified)

Object inflation

TBD

Current Tags

  • 0.0.1                                ...           latest (7 years ago)

1 Versions

  • 0.0.1                                ...           7 years ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (3)
Dev Dependencies (5)
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |