Model Adapters
We currently support mongo, riak, postgres and a memory model adapter which is useful for testing purposes.
We assume that you already have a DB installed and the native components that you may need. At the end of this document we provide some links that can help you get started with this.
Most applications will only use one model adapter. However, geddy provides the flexibility to overrides per model. This way you might store some of your models in postgres and others in mongo.
In your config/development.js (or production.js) you can specify a modelAdapter
var config = {
model: {
defaultAdapter: 'memory'
}
};
Inside your model's constructor function specify the desired adapter, for example
this.adapter = 'postgres';
The adapter's configuration is also set in config/development.js (or production.js) you have to specify your model adapter settings. Each modelAdapter has specific configuration so we will cover them individually.
Install the mongodb wrapper for node.
npm install mongodb-wrapper
Edit your config file with your connection settings.
var config = {
// Other settings
, model: {
defaultAdapter: 'mongo'
}
, db: {
mongo: {
dbname: 'model_test'
}
};
If you are deploying on a multi-user server, it is probably best to use mongodb in secure mode, ie. with authentication. See mongodb security. In this case, you'll need more settings in config. For example:
var config = {
// Other settings
, model: {
defaultAdapter: 'mongo'
}
, db: {
mongo: {
dbname: 'model_test'
, port: 27017
, host: 'localhost'
, prefix: 'mongodb'
, username: 'adminguy'
, password: 'adminpass'
}
};
Install the postgres client for node.
npm install pg
Edit your config file with your connection settings.
var config = {
// Other settings
, model: {
defaultAdapter: 'postgres'
}
, db: {
postgres: {
port: 5432
, password: 'supersecurepassword'
, database: 'dbname'
, host: 'localhost'
, user: 'user'
}
}
};