couchbase adapter for east
npm install east east-couchbase -g
alternatively you could install it locally
Go to project dir and run
east init
create .eastrc
file at current directory
{
"adapter": "east-couchbase",
"url": "couchbase://localhost",
"dbauth": {
"username": "admin",
"password": "password"
}
}
where url
is url of database which you want to migrate (in
couchbase url connection format)
The information about the migrations will be stored in a document under the key migration|<migration_name>
(this behavior is configurable)
This adapter takes some advanced options like in this example
{
keyPrefix: 'migrations',
keySeparator: '|',
url: 'couchbase://localhost',
bucket: {
name: 'default',
passwor: null
},
dbauth: {
username: "admin",
password: "password"
}
}
keyPrefix: The prefix for the key used for the document on couchbase. Default: migrations
keySeparator : the separator used in the key. Default |
bucket.name: The name of the bucket. Default default
bucket.password: The password for the bucket. Default null
The adapter expose the following properties in the client paramter of your migrations:
- db Which is a reference to the datasource
- executionByQueries A functions to execute N1ql queries easily as explained here
The default migration template show you plenty of examples to use the adapter at its best. If you need just to execute a series of N1ql queries for your migrations you can do as in the example below
'use strict';
let migrationQueries = [
'INSERT INTO $1 (KEY, VALUE) VALUES ("my_key", { "productId": "lemonade", "color":"green"})'
];
let rollbackQueries = [
'DELETE FROM $1 WHERE productId="lemonade";'
];
exports.migrate = function(client, done) {
client.executionByQueries(migrationQueries, done);
};
exports.rollback = function(client, done) {
client.executionByQueries(rollbackQueries, done);
};
In this case $1
will be substituted with the bucket name.
You can find others options on the default template's comments
The db object exposed in the client is an instance of the connector used internally. It expose the following methods
getEngine(): returns the couchbase driver instance
getBucket(): returns an instance the the bucket object as exposed by the driver
run east tests with this adapter
MIT