east-rethink v1.0.0
east rethink
rethinkdb adapter for east (node.js database migration tool) which uses pensuer
All executed migrations names will be stored at migrations table in the
current database. Object with following properties will be passed to migrate
and rollback functions:
db- instance of pensuer
Installation
npm install east east-rethink -galternatively you could install it locally
Usage
go to project dir and run
east initcreate .eastrc file at current directory
{
"adapter": "east-rethink",
"tables": ["card", "group", "user"],
"database": {
"name": "mydatabase",
"migrationTable": "mymigrationtable",
"connection": {
"host": "localhost",
"port": 28015
}
}
}where
tablesis an array of the tables you wish to connect to in your database.databaseis a json object with the following properties:name- database name,migrationTable- migration table name (optional - defaults to 'migration'),connection- a json object withhostandportproviding the host name and port number for your database respectively.
now we can create some migrations
east create apples
east create bananascreated files will looks like this one
exports.migrate = function(client, done) {
var db = client.db;
done();
};
exports.rollback = function(client, done) {
var db = client.db;
done();
};edit created files and insert
to 1_apples
exports.migrate = function(client, done) {
var db = client.db;
db.card.insert( { id: 'red-apple', type: 'apple', color: 'red' })
.then(() => done(null), done);
};
exports.rollback = function(client, done) {
var db = client.db;
db.card.remove({ id: 1 })
.then(() => done(null), done);
};to 2_bananas
exports.migrate = function(client, done) {
var db = client.db;
db.card.insert( { id: 2, type: 'banana', color: 'yellow' })
.then(() => done(null), done);
};
exports.rollback = function(client, done) {
var db = client.db;
db.card.remove({ id: 2 }, (err) => {
if (err) return done(err);
return done(null);
});
};now we can execute our migrations
east migrateoutput
target migrations:
1_apples
2_bananas
migrate `1_apples`
migration done
migrate `2_bananas`
migration doneand roll them back
east rollbackoutput
target migrations:
2_bananas
1_apples
rollback `2_bananas`
migration successfully rolled back
rollback `1_apples`
migration successfully rolled backyou can specify one or several particular migrations for migrate/rollback e.g.
east migrate 1_applesor
east migrate 1_apples 2_bananasRun east -h to see all commands, east <command> -h to see detail command help,
see also east page for command examples.
Running test
run east tests with this adapter